То, что вы делаете, выглядит совершенно нормально для меня. Я реализовал то, что вы пытаетесь выполнить sh на случай, если вы что-то пропустили. Сначала давайте начнем с файла dockerfile
From redis:alpine
WORKDIR /usr/app
ENV ENVIRONMENT_VAR notfound
COPY . .
CMD sh ./start.sh
Здесь для начала я использую образ redis, объявляя переменную окружения, копирую скрипт в контейнер и запускаю его.
Второй docker -compose, который также должен быть похож на вашу реализацию в некотором смысле
version: '3.2'
services:
redis:
container_name: 'redis-test'
build: .
environment:
- ENVIRONMENT_VAR=found
restart: always
Если вы посмотрели на вывод с помощью команды docker -compose up , вы найдете найдено окружение var вы пытаетесь напечатать
redis-test | 7:C 21 Apr 2020 10:30:14.247 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
redis-test | 7:C 21 Apr 2020 10:30:14.247 # Redis version=5.0.9, bits=64, commit=00000000, modified=0, pid=7, just started
redis-test | 7:C 21 Apr 2020 10:30:14.247 # Configuration loaded
redis-test | found environment var
вы можете отладить это также с помощью echo $ ENVIRONMENT_VAR внутри вашего контейнера, как упомянул @David Maze