我使用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