.env文件未从Alpine Linux Docker中获取

时间:2019-05-06 03:22:33

标签: bash docker

.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文件?

1 个答案:

答案 0 :(得分:1)

RUN仅在构建阶段生效,因此您source将永远不会影响运行时的容器。您应该在CMDENTRYPOINT中执行源代码,它们将在容器运行时中运行,并为您的项目编写一个entrypoint.sh。像this

Dockerfile:

ENTRYPOINT ["docker-entrypoint.sh"]

docker-entrypoint.sh:

source .env
my_server run

而且,在dockerfile中使用ENV是另一种会影响运行时容器的方式。