Docker & Amazon Beanstalk - 部署 Angular 应用程序

Docker & Amazon Beanstalk - Deploy an Angular application

我正在尝试部署一个 dist 文件夹,该文件夹是 Gulp 使用 Dockerfile 和 Amazon EB 通过版本控制生成的。

当我 运行 eb 部署时失败:

COPY dist /var/www/html dist: no such file or directory. Check snapshot logs for details. Hook /opt/elasticbeanstalk/hooks/appdeploy/pre/03build.sh failed. For more detail, check /var/log/eb-activity.log using console or EB CLI.

这是因为 dist 目录不受源代码管理吗?如果是这样,将 dist 目录传输到 EB 同时仍然使用我的 docker 文件来部署和配置应用程序的最佳方法是什么?

下面是我的 Dockerfile:

FROM nimmis/apache-php5

COPY dist /var/www/html
WORKDIR /var/www/html

EXPOSE 80 

如果您真的想要 docker 映像中的 dist 文件,请安装 gulp 和 运行 命令以在 Dockerfile 中生成 dist 文件夹。

查看 Dockerfiles 的 运行 命令

我认为我对 eb deploy 的理解有问题。答案是使用 bash 脚本压缩 dist 目录和其他文件,并为 config.yml 文件创建我自己的工件:

例如

dist(应用程序文件) 配置(php.ini 和 000-default.conf) Dockerfile

然后将目录添加到config.yml:

deploy:
artifact: dist.zip

然后我能够编写 bash 脚本来创建版本号标签,然后部署到 Beanstalk:

eb deploy --staged --label {version_number}