2016-04-20 19 views
5

Birkaç Docker-compose.yml dosyam var, aynı Dockerfile ile kullanmak istediğim küçük bir varyasyon var. Bu yüzden, Dockerfile'a bir argüman iletmek istiyorum, böylece değişkenin ayarlandığı herhangi bir değere bağlı olarak biraz farklı şeyler yapabilirim.Docker dosyası bir docker-compose.yml dosyasından bir değişkene geçirme

ben çok

liman işçisi-oluşturma-A.yml

version: '2' 

services: 
    django: 
    build: 
     context: . 
     dockerfile: ./docker/Dockerfile 
     args: 
     - SOMETHING=foo 

liman işçisi-oluşturma-B.yml Bir dockerfile var

version: '2' 

services: 
    django: 
    build: 
     context: . 
     dockerfile: ./docker/Dockerfile 
     args: 
     - SOMETHING=bar 

dosya dosya böylece denedi neler SOMETHING'i kullanmak istiyorum.

# Dockerfile 
RUN echo $SOMETHING 

Bu işe yaramıyor. TEKNE docker dosyasına geçmez.

Bunu yanlış mı yapıyorum yoksa amaçlanan kullanım değil mi?

Docker dosyası bir docker-compose.yml dosyasından bir değişken iletmenin başka bir yolu var mı?

Herhangi bir geri bildiriminiz için teşekkür ederiz. Teşekkürler

+1

Dockerfile'da 'ARG SOMETHING''i tanıttınız mı? – Lauri

+0

daha iyi kullanım ENV, bkz. Https://docs.docker.com/engine/reference/builder/#env – user2915097

+0

@Lauri mükemmel! Teşekkürler –

cevap

11

Temelde Dockerfile'daki arg bildirimini özledim.

 

# Dockerfile 
ARG SOMETHING 
RUN echo $SOMETHING 


Shoutout

# docker-compose.yml file 

version: '2' 

services: 
    django: 
    build: 
     context: . 
     dockerfile: ./docker/Dockerfile 
     args: 
     - SOMETHING=foo 
bana ışığı göstermek için @Lauri için.

İlgili konular