Передайте переменную в файл Docker из файла docker-compose.yml
У меня есть несколько файлов docker-compose.yml, с которыми я хочу использовать тот же Dockerfile, с небольшим изменением. Поэтому я хочу передать аргумент в этот Dockerfile, чтобы я мог сделать что-то немного другое в зависимости от того, какое значение переменной установлено.
Что я пробовал до сих пор
файл docker-compose-A.yml
version: '2'
services:
django:
build:
context: .
dockerfile: ./docker/Dockerfile
args:
- SOMETHING=foo
файл docker-compose-B.yml
version: '2'
services:
django:
build:
context: .
dockerfile: ./docker/Dockerfile
args:
- SOMETHING=bar
У меня есть докер файл, в котором я хочу использовать что-то. Например
# Dockerfile
RUN echo $SOMETHING
Это не работает ЧТО-ТО не передается в файл Docker.
Я делаю это неправильно или это не предполагаемое использование?
Есть ли другой способ передать переменную в Dockerfile из файла docker-compose.yml?
Ответы
Ответ 1
В основном я пропустил объявление arg в файле Docker.
# docker-compose.yml file
version: '2'
services:
django:
build:
context: .
dockerfile: ./docker/Dockerfile
args:
- SOMETHING=foo
# Dockerfile
ARG SOMETHING
RUN echo $SOMETHING
Shoutout @Lauri за то, что он показал мне свет.