我正在尝试使用我的Django应用程序创建一个Docker镜像,但不幸的是我在尝试运行我的入口点脚本时遇到了麻烦。
Docker退出eith代码错误127并显示以下消息:
/docker-entrypoint.sh:忽略/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 \
"$@"
搬运工-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
答案 0 :(得分:1)
在本地重现问题后:docker build .
成功构建图像,但在尝试使用docker-compose up
启动图像时,我得到了以下错误exec: gunicorn: not found
作为上述OP。根据{{3}},我可以解决运行docker-compose build
的问题。因此,总结以下3个命令应解决问题:
docker build .
docker-compose build
docker-compose up
尽管这解决了我的问题,我仍然在这里感到困惑,为什么我需要运行构建两次。我的意思是它应该在某处出错,因为据我所知,docker-compose build
应该做与docker build .
相同的工作。