我正在尝试使用基于docker-compose
的烧瓶实例进行部署
这个配置:
搬运工-compose.yml
version: '2'
services:
flask:
container_name: myproject
image: myproject
build: .
env_file: dev.env
ports:
- "5000:5000"
dev.env
FLASK_HOST=0.0.0.0
FLASK_PORT=5000
FLASK_DEBUG=1
Dockerfile
FROM ubuntu:latest
RUN apt-get update -y
RUN apt-get install -y python-pip python-dev build-essential
RUN mkdir /app
WORKDIR /app
COPY requirements.txt /app/requirements.txt
RUN pip install --upgrade pip
RUN pip install -r requirements.txt
COPY . /app
CMD python ./app/run.py
EXPOSE ${FLASK_PORT}
本地一切正常,但当我尝试加载图像备份并在另一台机器上的容器中运行时,我收到以下错误:
Traceback (most recent call last):
File "./app/run.py", line 10, in <module>
port = int(os.environ.get("FLASK_PORT"))
TypeError: int() argument must be a string or a number, not 'NoneType'
似乎没有更多的环境变量。我错过了什么吗?
答案 0 :(得分:1)
docker-compose.yml
中没有魔法,它只是Docker命令的总结。
对于您的情况,启动容器的最终命令类似于:
docker run --env-file=xxx ...
此env文件从未转移到另一台计算机。