Я хочу использовать значение локальной переменной среды, хранящейся в файле .env в Dockerfile, почти так же, как вы можете сделать с docker -compose. Мой скрипт выглядит следующим образом.
#!/bin/bash
source $(pwd)/.env
echo "Building new training container image..."
docker build \
-t "rasa_training_img" \
--build-arg RASA_VERSION \
./rasa-training
echo "Build finished. Running container..."
docker run \
-v $(pwd)/rasa-server:/app \
--name "rasa_training_cont" \
rasa_training_img
А Dockerfile
выглядит так:
# FROM rasa/rasa:1.9.4-spacy-de
FROM rasa/rasa:$RASA_VERSION-spacy-de
COPY ./utils /training-utils
# install necessary python packages
USER root
RUN pip install -r training-utils/requirements.txt
USER 1001
# execute training steps script
ENTRYPOINT [ "/bin/bash" ]
CMD [ "training_steps.sh" ]
Когда я пытаюсь запустить его таким образом, он выдает следующий вывод:
Step 1/7 : FROM rasa/rasa:$RASA_VERSION-spacy-de
invalid reference format
Также пробовал с фигурными скобками:
Step 1/7 : FROM rasa/rasa:${RASA_VERSION}-spacy-de
invalid reference format
Есть ли способ получить доступ к значению переменной (как можно сделать с docker -compose)? Я знаю, что мог бы в основном заменить свой скрипт на docker -композитный файл, но я хочу избежать этого.