我正在尝试在本地计算机上组成一个docker映像,以将其部署到Google Cloud。
该应用是基于GPT 2 Repo构建的简单Python和Flask。因此,我在终端中尝试了以下命令:
$ docker build -t text-gen:v1。
容器和图像创建良好,但是它们立即以代码[1]退出,当我运行$docker ps
命令时,它们不会出现在正在运行的容器下,但是当我运行时,它们确实存在于停止的图像下运行$docker ps -a
$docker rm text-gen -f
删除了创建的容器3-停止docker,重启我的mac,再次启动docker,构建docker compose文件,这一次,我尝试使用以下命令创建容器:
$docker-compose up --build flask
假设将flask作为服务,但是同样的事情再次发生,容器在创建时使用代码[1]退出。
考虑到这是我第一次使用这些服务,我花了一段时间才找到此命令
$docker logs text-gen
,看来我的主app.py文件中存在语法错误,没有任何意义:
(venv) myyapproot $docker logs af6175cxxxx
文件“ app.py”,第89行
return f'<div>{html}</div>'
^
SyntaxError: invalid syntax
此日志在app.py中引用的代码:
87 html = ''
88 html = add_content(html, box(seed, text))
89 return f'<div>{html}</div>'
我希望div元素返回一些html内容,当我在python环境中但不在docker环境中运行它时,效果很好 该代码对我来说似乎很好,任何人都可以指出正确的方向吗?
我觉得我缺少依赖项或某些东西
我所做的事情: -通过有线连接重新安装了Docker -在没有docker构建的情况下重新测试了我的应用 -使用了不同的构建方法
我的设置: MacOs 10.14.1 在python中产生可运行应用程序的依赖项: 这就是我的环境。yml
dependencies:
- python==3.7
- pip:
- Flask==1.0.2
- torch==1.0.1
- regex==2017.4.5
- requests==2.21.0
- numpy==1.16.2
- wtforms==2.2.1
- tqdm==4.31.1
- gunicorn==19.9.0
- firebase-admin==2.13.0
- google-cloud-firestore==0.29.0
这是我的docker-compose.yml文件:
version: '3.3'
services:
flask:
image: text-gen
build: .
command: /opt/conda/envs/ml-flask/bin/python app.py
ports:
- "5000:5000"
这是我的dockerFile
FROM ubuntu:18.04
ENV LANG=C.UTF-8 LC_ALL=C.UTF-8
COPY ["environment.yml", "/root/environment.yml"]
RUN apt-get update --fix-missing && apt-get install -y wget bzip2 ca-
certificates \
libglib2.0-0 libxext6 libsm6 libxrender1 \
git mercurial subversion python-dev gcc
# install miniconda and python 3.7
RUN wget --quiet https://repo.anaconda.com/miniconda/Miniconda3-4.5.11-
Linux-x86_64.sh -O ~/miniconda.sh && \
/bin/bash ~/miniconda.sh -b -p /opt/conda && \
rm ~/miniconda.sh && \
ln -s /opt/conda/etc/profile.d/conda.sh /etc/profile.d/conda.sh && \
echo ". /opt/conda/etc/profile.d/conda.sh" >> ~/.bashrc
RUN /opt/conda/bin/conda env create -f=/root/environment.yml -n ml-flask
RUN echo "conda activate ml-flask" >> ~/.bashrc
SHELL ["/bin/bash", "-c", "source ~/.bashrc"]
RUN conda activate ml-flask
COPY ["deployment", "/usr/src/app/deployment"]
COPY ["models", "/usr/src/app/models"]
WORKDIR /usr/src/app/deployment
CMD [ "/bin/bash" ]