【发布时间】:2020-02-08 13:40:31
【问题描述】:
我正在关注 Miguel Grinberg 的 Flask Web Development [第 2 版]。第三部分第 17 章介绍了如何将项目部署到 Docker。我在 VMware 上使用 Ubuntu 18.04 LTS。
- 我通过运行
docker build -t flasky:latest .成功构建了一个容器镜像。 - 运行
docker images我验证图像已成功创建。 - 我无法使用以下方法运行容器:
docker run --name flasky -d -p 8000:5000 \
-e SECRET_KEY=<secret_key> \
-e MAIL_USERNAME=<my_email> \
-e MAIL_PASSWORD=<my_password> flasky:latest
结果我得到这个错误:
docker:来自守护进程的错误响应:OCI 运行时创建失败:container_linux.go:346:启动容器进程导致“exec:\”./boot.sh\“:权限被拒绝”:未知。
我尝试使用chmod 修改权限,但无济于事。再说一次,也许我做错了。
Dockerfile:
FROM python:3.6-alpine
ENV FLASK_APP flasky.py
ENV FLASK_CONFIG docker
RUN adduser -D flasky
USER flasky
WORKDIR /home/flasky
COPY requirements requirements
RUN python -m venv venv
RUN venv/bin/pip install -r requirements/docker.txt
COPY app app
COPY migrations migrations
COPY flasky.py config.py boot.sh ./
# runtime configuration
EXPOSE 5000
ENTRYPOINT ["./boot.sh"]
boot.sh:
#!/bin/sh
source venv/bin/activate
flask deploy
exec gunicorn -b 0.0.0.0:5000 --access-logfile - --error-logfile - flasky:app
【问题讨论】:
-
您是否尝试在您的用户输入脚本上设置
chown。并在上面设置chmod 4755 -
我还没有尝试过
chown,但我会留意它以备将来使用。谢谢!我已经使用下面给出的解决方案之一解决了这个问题。