django - docker ERROR:对于 nginx 无法启动服务 nginx:驱动程序在编程外部连接时失败
问题描述
我是新手Docker
并使用设置我的第一个Django
应用程序Docker
我的应用程序路径看起来像
app
|- helloworld
|- __init__.py
|- manage.py
|- static_cdn
|- static_root
|- config
|- nginx
|- nginx.conf
|- Dockerfile
|- docker-compose.yml
|- requirements.txt
|- start.sh
的内容Docerfile
FROM ubuntu:18.04
# -- Install Pipenv:
FROM python:3
ENV PYTHONUNBUFFERED 1
ENV LC_ALL C.UTF-8
ENV LANG C.UTF-8
# -- Install Application into container:
RUN set -ex && mkdir /app
WORKDIR /app
ADD requirements.txt /app/
RUN pip install -r requirements.txt
# -- Adding dependencies:
ADD . /app/
的内容docker-compose.yml
version: '3'
services:
nginx:
image: nginx:latest
ports:
- "9010:9010"
volumes:
- .:/app
- ./config/nginx:/etc/nginx/conf.d
- ./static_cdn:/static
depends_on:
- web
web:
build: .
command: ./start.sh
volumes:
- .:/app
- ./static_cdn:/static
ports:
- "9010:9010"
depends_on:
- db
expose:
- "9010"
db:
image: postgres
的内容config/nginx/nginx.conf
upstream web {
ip_hash;
server web:9010;
}
server {
location /static {
autoindex on;
alias /static/
}
location / {
proxy_pass http://127.0.0.1;
}
listen 9011;
server_name localhost;
}
的内容start.sh
#!/usr/bin/env bash
# Start Gunicorn processes
echo --: Starting application build
echo --: Creating migration
exec python3 manage.py makemigrations
echo ------: makemigrations complete
echo --: Running migration
exec python3 manage.py migrate
echo ------: migrate complete
echo --: Running collectstatic
exec python3 manage.py collectstatic
echo ------: collectstatic complete
echo Starting Gunicorn.
exec gunicorn helloworld.wsgi:application \
--bind 0.0.0.0:9010 \
--workers 3
现在,当我使用 docker 构建时
docker-compose up --build
它给出了错误
错误:对于 nginx 无法启动服务 nginx:驱动程序在端点 koober_nginx_1 上编程外部连接失败(8ea5c084a7283a16afbf136a73dc4b27d9cae35fe14d735b83199ad5d0e03431):绑定 0.0.0.0:9010 失败:端口已分配
我遵循了一些教程来创建这些 Docker 文件和 nginx conf 文件。
1.我该如何解决上述问题。
2. 是否需要FROM ubuntu:18.04
配合以上配置使用?
编辑 2
解决方案
2022 年 2 月更新:
杀死所有 nginx 进程:
sudo killall nginx
然后:
docker-compose up --build
推荐阅读
- mysql - 有没有办法以多对一的关系共享一个类的复合主键?
- c++ - 类名没有命名类型 c++
- python-3.x - 无法使用 psycopg 连接到 Azure postgres。找不到您尝试的服务器名称
- c# - 如何在 OOP 中为字典添加元素方法?
- javascript - 请求 Firebase 消息令牌而不在前端安装 firebase 包
- jmeter - 如何以连续增加的并发性多次运行测试计划
- windows - 从服务器注销除一个之外的所有用户
- javascript - 如何制作有照片背景的p文字?
- amazon-web-services - 如何防止直接从源下载媒体文件?
- sql - 元素数超过 SQL 数据透视语句中允许的最大值