inşa oluşturan iki bağımsız değişkenleri kullanan bir Dockerfile
:Dockerfile geçiş ortamları yazdım
FROM jessie
MAINTAINER Zeinab Abbasimazar
#Build Arguments
ARG REP_USER
ARG REP_PASS
# Build
RUN echo 'REP_USER:'$REP_USER', REP_PASS:'$REP_PASS
Ben yapı için bir docker-compose.yml
yazdı: Ben bu argümanlar tanımlamak istemiyorum
version: "2"
services:
ui:
build:
context: .
dockerfile: Dockerfile
args:
REP_USER: $REP_USER
REP_PASS: $REP_PASS
doğrudan dolaşık dosyasında, docker oluşturma sırasında bunları göndermeyi denedim:
Hangisi işe yaramadı? Bu argümanları çevre değişkenleri olarak kullanmak için Dockerfile
değiştirdim;
FROM jessie
MAINTAINER Zeinab Abbasimazar
# Build
RUN echo 'REP_USER:'$REP_USER', REP_PASS:'$REP_PASS
Ve docker-compose.yml
: ben ARG
satırları kaldırıldı
version: "2"
services:
ui:
build:
context: .
dockerfile: Dockerfile
Ve REP_USER=myusername REP_PASS=mypassword docker-compose build
koştu; Hala sonuç yok.
env
dosyasına bu bilgileri kaydetmek için çalıştı:
version: "2"
services:
ui:
build:
context: .
dockerfile: Dockerfile
env_file:
- myenv.env
Ama yapı anda etkilemez env
dosyaları görünüyor; Onlar sadece çalışma zamanına katılıyorlar.
DÜZENLEME 1:
Docker sürüm --build-arg
ile geçen argümanları desteklemez 1.12.6
olduğunu.
DÜZENLEME 2:
ben tarif here olarak .env
dosyasını kullanarak çalıştı: Sonra docker-compose config
denilen
cat .env
REP_USER=myusername
REP_PASS=mypassword
döndürdü: Bu sorunumu çözdü demektir
networks: {}
services:
ui:
build:
args:
REP_PASS: mypassword
REP_USER: myusername
context: /home/zeinab/Workspace/ZiZi-Docker/Test/test-exec-1
dockerfile: Dockerfile
version: '2.0'
volumes: {}
.
DÜZENLEME 3:
Ben de docker-compose.yml
dosyada docker-compose arg documentation üçüncü bölümü denedik: infaz
version: "2"
services:
ui:
build:
context: .
dockerfile: Dockerfile
args:
- REP_USER
- REP_PASS
Ve:
export REP_USER=myusername;export REP_PASS=mypassword;sudo docker-compose build --no-cache
Hala istenen netice elde edilmezse.
here açıklandığı gibi
Docker sürümüm, bunu desteklemeyen "1.12.6". –
Kötü için. Güncelleme seçeneği yok mu? "Normal" bir Linux'ta 'docker-compose'un yeni bir sürümünü' $ HOME/bin' içine koyabilirsiniz ve sistem varsayılanı yerine çalıştırılmalıdır. – fzgregor
Güncellemenin mümkün olup olmadığını kontrol edeceğim; tüm iş yaklaşımları ofiste benim kontrolümde değil. –