Py学习  »  docker

在docker compose中连接博士后

23rdpro • 3 年前 • 1169 次点击  

所以我有一个成功塑造的形象 postgres 作为一个卷安装,但我不断得到 django.db.utils.OperationalError: 无法连接到服务器:连接被拒绝-当我运行时 docker-compose up 我的 Dockerfile docker-compose.yml 看起来像这样:

# syntax=docker/dockerfile:1

FROM python:3.10-slim-buster

ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1

WORKDIR /track

COPY requirements.txt .

RUN apt-get update \
    && apt-get -y install libpq-dev gcc \
    && pip install --upgrade pip \
    && pip install --default-timeout=100 -r requirements.txt


COPY . .

ENV DJANGO_SETTINGS_MODULE track.settings

EXPOSE 8000
version: "3.9"

services:
  django:
    build: .
    command: python manage.py runserver 0.0.0.0:8000
    stdin_open: true
    tty: true
    volumes:
    - .:/track
    ports:
    - "8000:8000"
    depends_on:
      - db

  db:
    image: postgres:9.6.10-alpine
    restart: always
    user: postgres
    volumes:
    - track_db:/var/lib/postgresql/data
    environment:
      POSTGRES_USER: postgres
      POSTGRES_PASS: postgres
      POSTGRES_DB: postgres

volumes:
  track_db: {}

拜托,我做错什么了?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/129475
 
1169 次点击  
文章 [ 1 ]  |  最新文章 3 年前
Andrew
Reply   •   1 楼
Andrew    3 年前

Jango服务必须链接到数据库:

services:
  django:
    build: .
    command: python manage.py runserver 0.0.0.0:8000
    stdin_open: true
    tty: true
    volumes:
      - .:/track
    ports:
      - "8000:8000"
    depends_on:
      - db
    links:
      - db

现在,您可以通过容器主机名连接到db