【发布时间】:2020-07-12 01:24:48
【问题描述】:
我想使用存储在 Dockerfile 中的 .env 文件中的本地环境变量的值,就像使用 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-compose 文件替换我的脚本,但我想避免这种情况。
【问题讨论】:
标签: bash shell docker docker-compose environment-variables