2016-04-20 14 views
5

Mam kilka plików docker-compose.yml, z których chcę korzystać z tego samego pliku Docker, z niewielkimi zmianami. Tak więc chcę przekazać argument do tego pliku Dockerfile, aby móc zrobić coś nieco innego w zależności od wartości ustawionej zmiennej.Przekaż zmienną do pliku Dockerfile z pliku docker-compose.yml.

Co Próbowałem tak daleko

doker-komponować-A.yml złożyć

version: '2' 

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

doker-komponować-B.yml złożyć

version: '2' 

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

Mam dockerfile Chcę użyć COŚ w. Np

# Dockerfile 
RUN echo $SOMETHING 

To nie działa. COŚ NIE jest przekazywane do pliku dockerfile.

Czy robię to niepoprawnie, czy to nie jest zamierzone użycie?

Czy istnieje inny sposób przekazania zmiennej do pliku Dockerfile z pliku docker-compose.yml?

Wszelkie uwagi są mile widziane. Dzięki

+1

Czy wprowadziłeś "COŚ COŚ" w Dockerfile? – Lauri

+0

lepiej użyć ENV, zobacz https://docs.docker.com/engine/reference/builder/#env – user2915097

+0

@Lauri excellent! Dzięki –

Odpowiedz

11

Zasadniczo brakowało mi zadeklarowanie arg w pliku Dockerfile.

# docker-compose.yml file 

version: '2' 

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

 

# Dockerfile 
ARG SOMETHING 
RUN echo $SOMETHING 


Shoutout do @Lauri za pokazanie mi światło.

Powiązane problemy