.env
文件位于项目根目录中。
我正在使用以下docker文件
FROM alpine:3.7
WORKDIR /app
COPY . /app
RUN apk update && apk add build-base python3 python3-dev --no-cache bash && \
pip3 install --upgrade pip && \
pip3 install --trusted-host pypi.python.org --no-cache-dir -e. && \
./scripts/install.sh
EXPOSE 5000 3306
CMD ["myserver", "run"]
和install.sh文件如下
#!/usr/bin/env bash
source .env
当我登录到Docker容器时,我注意到.env
文件未获得来源。 .env
文件在folder
中的位置。如何通过使用docker文件在docker容器中获取.env
文件?
答案 0 :(得分:1)
RUN
仅在构建阶段生效,因此您source
将永远不会影响运行时的容器。您应该在CMD
或ENTRYPOINT
中执行源代码,它们将在容器运行时中运行,并为您的项目编写一个entrypoint.sh
。像this
Dockerfile:
ENTRYPOINT ["docker-entrypoint.sh"]
docker-entrypoint.sh:
source .env
my_server run
而且,在dockerfile中使用ENV
是另一种会影响运行时容器的方式。