如何使用 nginx + docker 将 AngularJS 应用程序部署到 Elastic Beanstalk?

How to deploy AngularJS app using nginx + docker to Elastic Beanstalk?

所以我正在将 AngularJS 应用程序部署到 AWS Elastic Beanstalk 实例。

我已成功配置构建要求,其中涉及上传一个 Dockerrun.aws.json 文件,该文件配置为访问 S3 存储桶,该存储桶又包含 .dockercfg 文件,用于访问我的私有 Docker回购。

一切构建成功,nginx 运行。我收到默认的 "Welcome to nginx on Debian!" 消息。

所以我现在遇到的唯一问题是将我的 AngularJS 应用程序的构建指向 active/home 页面("Welcome.." 屏幕出现的地方。)

应用程序的所有内容都存储在 /build 中,从项目的根目录开始,这是包含我的 Dockerfile 的地方。

根据我目前收集到的信息,我认为我需要遵循以下路线:

FROM nginx
COPY /build/ /usr/share/nginx/html

位于 Dockerfile 内,但这些特定命令不起作用。

我确信实现我希望的目标相对微不足道,但在搜索了各种文章和文档后我找不到简单的答案。非常感谢任何帮助。

你快到了。尝试省略 Dockerfile 的复制命令中的第一个斜杠,因此它采用相对于 Dockerfile 的路径:

COPY build /usr/share/nginx/html/

所以在我写完这个问题几分钟后,我实际上以典型的方式找到了正确的解决方案。

Kapott 的回答也是正确的,但不是很准确,所以这里是答案:

COPY <directory_containing_app_index> /var/www/html/

public html 存储在 nginx 目录 /var/www/html/ 中。我从 nginx docker page 复制了 /usr/share/nginx/html/,虽然我没想到它是正确的,但从解释来看似乎是这样做的方法。