我使用Vagrant和Docker来创建开发环境,但是我遇到了一些问题。 我有一个config.yaml文件,其中包含一个变量“drush_version”。Vagrant env变量到Docker构建
然后在我的Vagrantfile,我做的:
.....
web.vm.provider "docker" do |d|
d.build_dir = "./docker/php/#{php_version}/#{web_server}"
d.create_args = ["--env", "DRUSH_VERSION=#{drush_version}"]
.....
在这就是所谓的Dockerfile
最后,我有:
.....
# Installation of drush
RUN git clone https://github.com/drush-ops/drush.git /usr/local/src/drush
RUN cd /usr/local/src/drush && git checkout $DRUSH_VERSION
RUN ln -s /usr/local/src/drush/drush /usr/bin/drush
RUN cd /usr/local/src/drush && composer update && composer install
.....
我期待drush与所选择的版本进行安装,但不幸的是它不起作用... 事情是当容器被构建时,$ DRUSH_VERSION变量总是空的。
但是在Docker容器启动后,如果我在容器中运行“echo $ DRUSH_VERSION”,我可以看到该变量已定义好。
如果我在我的Dockerfile的顶部添加“ENV DRUSH_VERSION 8.0.0-rc2”,它会工作,但我想将它设置在我的config.yaml文件中。
我认为这个问题是我需要的“泊坞窗构建”期间,通过这个变量,而不是“泊坞窗跑”,但我真的不知道该怎么办呢?
哪有我将Vagrant的变量传递给“docker build”? 有人能指引我正确的方向吗?
非常感谢
非常感谢您的回答!我花了这么多时间试图做到这一点...... – TehesFR
编辑:1.9.0已经发布今天上午,我会尝试新的ARG指令:https://github.com/docker/docker/releases/tag/ v1.9.0 – TehesFR