【发布时间】:2016-02-20 04:28:55
【问题描述】:
我已经实现了 docker 项目以进行自动设置。我在 Ubuntu Server 上使用 docker 1.9 并利用功能 build-arg。我用它在 apache 虚拟主机文件中设置动态子域。
docker build --no-cache --build-arg domain=demo1.myapp.com -t imagename .
docker run -d -p 8080:80 imagename
我使用域并在我的脚本文件中使用 sed 命令将其替换为虚拟主机文件
sed -i -e "s/defaulthost.com/$domain/g" /etc/apache2/sites-enabled/myApp.conf
我的 Dockerfile 有代码
ARG domain
RUN /bin/sh /script.sh $domain
现在我需要在我获得 Amazon Linux AMI 的 AWS 上迁移应用程序。但在这里我得到了支持的 docker 版本 1.7,它不支持 build-arg。我尝试升级,但很多依赖项阻止了我。
现在我决定使用如下 ENV 环境变量。
docker run -d -p 8080:80 -e domain=demo1.myapp.com
我也改变了 Docker 文件,比如
我的 Dockerfile 有代码
RUN /bin/sh /script.sh
但看起来他们在我的场景中不起作用,因为在构建时 sed 脚本替换了 apache 文件中的空值并且构建过程失败。
如果没有构建 arg 是不可能的,或者我做错了设置/使用 ENV 的方式
【问题讨论】:
标签: amazon-ec2 docker parameter-passing dockerfile