Передайте переменную в файл 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 за то, что он показал мне свет.