我一直在关注不可估量的Miguel Grinberg(https://learn.miguelgrinberg.com/read/mega-tutorial/ch19.html)的烧瓶大教程,最近在部署中遇到了障碍。
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"]
我的图片名为myflix:secondattempt。
用于启动容器的命令:
sudo docker run --name myflixcont -d -p 8000:5000 --rm myflix:secondattempt
正如我所说,我已经尝试在“-d”前面放入“-i”和“-t”的各种组合,但无济于事。
答案 0 :(得分:1)
export RSTUDIO_WHICH_R=/usr/local/bin/R
表示交互式tty
您不能将-it
与-it
结合使用,这意味着已分离
移除-d
并添加-d
:
-it
另一点(为了帮助你)是docker run --name myflixcont -it -p 8000:5000 --rm myflix:secondattempt
在exec模式下运行。这意味着它不会启动bash或破折号本身。您应该手动并明确地指定它:
ENTRYPOINT