【问题标题】:Django and Postgres problems with dockerizingDjango 和 Postgres 的 dockerizing 问题
【发布时间】:2021-10-11 17:59:47
【问题描述】:

您好,我无法 dockerize 我的 django 应用程序,因为我遇到了一个错误 -

listen tcp4 0.0.0.0:5433: bind: address already in use

另一方面,当我在 ubuntu 终端中“杀死”5433 端口时,我得到了这个错误

Is the server running on host "localhost" (::1) and accepting
web_1  |        TCP/IP connections on port 5433?

我可以做些什么来解决这个问题并成功地 dockerize 我的应用程序? Dockerfile

FROM python:3

RUN adduser --system --no-create-home django

ENV PYTHONUNBUFFERED=1
WORKDIR /code
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
ENV PYTHONPATH /code



EXPOSE 8000
USER django

CMD ["./main.py"]

码头工人撰写

version: "3"
   
services:
  

    db:
        image: postgres
        volumes:
          - ./data/db:/var/lib/postgresql/data
        environment:
          - POSTGRES_DB=fitshop
          - POSTGRES_USER=fituser
          - POSTGRES_PASSWORD=fitpass
        ports:
          - "5433:5433"
      web:
        build: .
        command: python manage.py runserver 0.0.0.0:8000
        volumes:
          - .:/code
        restart: always
        ports:
          - "8000:8000"
        depends_on:
          - db

settings.py

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'fitshop',
        'USER': 'fituser',
        'PASSWORD': 'fitpass',
        'HOST': 'localhost',
        'PORT': '5433',
    }
}

【问题讨论】:

    标签: python django docker docker-compose


    【解决方案1】:

    您应该在这里使用“db”作为主机。在 docker-compose 设置中,每个服务都在一个单独的容器中启动,并且所有容器的 /etc/hosts 配置被修改,以便每个容器可以通过服务名称找到其他容器。

    【讨论】:

    • 'PASSWORD': 'fitpass', 'HOST': 'db', 'PORT': '5433', i 得到同样的错误,端口在使用中
    【解决方案2】:

    我明白了!在 postgres 的 'localhost' 端口是 5433,但对于 'db' 作为 HOST,它是默认的,5432。

    【讨论】:

    • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
    猜你喜欢
    • 2020-05-06
    • 2015-04-17
    • 2019-08-05
    • 1970-01-01
    • 2020-06-07
    • 1970-01-01
    • 1970-01-01
    • 2018-07-03
    • 2020-10-01
    相关资源
    最近更新 更多