Docker容器立即停止(Flask/Python/Megatutorial)

2024-09-28 10:12:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在关注不可估量的miguelgrinberg(https://learn.miguelgrinberg.com/read/mega-tutorial/ch19.html)的flaskmegatutorial,最近在部署中遇到了一个问题。在

docker run命令启动容器,然后立即停止。它也不会出现在docker ps-a中。我在这里浏览了大量的回复,这些回复似乎表明解决方案是在docker run命令中添加“-it”,但这并不能解决问题。在

这是我的dockerfile:

FROM python:3.6-alpine

RUN adduser -D james

WORKDIR /home/myflix

COPY requirements.txt requirements.txt
RUN python -m venv venv
RUN venv/bin/pip install -r requirements.txt
RUN venv/bin/pip install gunicorn pymysql

COPY app app
COPY migrations migrations
COPY myflix.py config.py boot.sh ./
RUN chmod +x boot.sh

ENV FLASK_APP myflix.py

RUN chown -R james:james ./
USER james

EXPOSE 5000
ENTRYPOINT ["./boot.sh"]

我的形象被称为第二次尝试。在

用于启动容器的命令:

^{pr2}$

正如我所说,我已经尝试过在“-d”前面添加各种组合的“-I”和“-t”,但都没有效果。在


Tags: dockerrunpy命令txtvenvsh容器
1条回答
网友
1楼 · 发布于 2024-09-28 10:12:50

-it表示交互式tty。
不能将-it-d一起使用,这意味着分离。
删除-d并添加-it

docker run  name myflixcont -it -p 8000:5000  rm myflix:secondattempt

另一点(为了帮助您)是ENTRYPOINT以exec模式运行。这意味着它本身不会启动一个重击或冲刺。您应该手动明确地指定它:

^{pr2}$

相关问题 更多 >

    热门问题