gpt4 book ai didi

django - docker-compose 与 Dockerfile 入口点脚本冲突

转载 作者:行者123 更新时间:2023-12-02 03:15:13 60 4
gpt4 key购买 nike

我正在尝试使用我的 Django 应用程序创建一个 Docker 镜像,但不幸的是我在尝试运行我的入口点脚本时遇到了麻烦。

Docker 退出代码错误 127 并显示以下消息:

/docker-entrypoint.sh: ignoring /docker-entrypoint-initdb.d/*



您可以在下面找到相应的配置文件:

Dockerfile

FROM python:2.7
ENV PYTHONUNBUFFERED 1

RUN mkdir -p /web/src
ADD . /web/src
WORKDIR /web/src
RUN pip install -U pip
RUN pip install -r requirements.txt -U
RUN chmod u+x docker-entrypoint.sh

ENTRYPOINT ["/bin/bash", "docker-entrypoint.sh"]

docker-entrypoint.sh

#!/bin/bash
python manage.py migrate
python manage.py collectstatic --noinput

touch /srv/logs/gunicorn.log
touch /srv/logs/access.log
tail -n 0 -f /srv/logs/*.log &

echo Starting Gunicorn...
exec gunicorn config.wsgi:application \
--name django_server \
--bind 0.0.0.0:8000 \
--workers 3 \
--log-level=info \
--log-file=/srv/logs/gunicorn.log \
--access-logfile=/srv/logs/access.log \
"$@"

docker-compose.yml

version: '2.0'
services:
db:
container_name: db_server
image: postgres
web:
container_name: django_server
build: .
volumes:
- .:/web/src
environment:
- SECRET_KEY=k3jghf1jk%$JH^1GJH5@YUTR@!MBMB<5=7DXXG)JHSX=
- PGDATABASE=postgres
- PGUSER=postgres
- PGPASSWORD=''
- PGHOST=db
- DJANGO_ENV=development
command: python manage.py runserver 0.0.0.0:8000
ports:
- "8000:8000"
links:
- db

最佳答案

本地复现问题后:docker build .成功构建镜像,但尝试使用 docker-compose up 启动镜像时我收到以下错误 exec: gunicorn: not found正如上面提到的OP。基于 this thread我可以解决运行 docker-compose build 的问题.所以总结以下3条命令应该可以解决问题:

  • docker build .
  • docker-compose build
  • docker-compose up

  • 尽管这为我解决了问题,但我仍然在这里感到困惑,为什么我需要运行两次构建。我的意思应该是某处出了问题,因为据我所知, docker-compose build应该做与 docker build . 相同的工作.

    关于django - docker-compose 与 Dockerfile 入口点脚本冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37393459/

    60 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com