doccano DB身份验证在使用docker compose和备用端口/服务名称时失败,

qvsjd97n  于 1个月前  发布在  Docker
关注(0)|答案(1)|浏览(50)

我无法在前端登录,因为用户名和密码错误(请查看下面的.env文件)。
我还不得不将nginx前端暴露在8888端口上,而不是默认的80端口,因为80端口已经有另一个nginx在运行。
我还不得不更改nginx和postgresql的容器名称,以避免与其他项目冲突。
请查看下面的文件。谢谢!

您的环境

通过docker compose命令在AWS EC2服务器上的Ubuntu上运行此项目。
docker-compose -f docker-compose.prod.yml --env-file .env up
这里是日志片段:

doccano-psql       |    Connection matched pg_hba.conf line 99: "host all all all md5"
doccano-psql       | 2023-10-02 10:04:08.607 UTC [186] FATAL:  password authentication failed for user "doccano"
doccano-psql       | 2023-10-02 10:04:08.607 UTC [186] DETAIL:  Role "doccano" does not exist.
docker-flower-1    | Database unavailable on attempt 53/60: FATAL:  password authentication failed for user "doccano"
doccano-psql       |    Connection matched pg_hba.conf line 99: "host all all all md5"
doccano-psql       | 2023-10-02 10:04:11.082 UTC [187] FATAL:  password authentication failed for user "doccano"
doccano-psql       | 2023-10-02 10:04:11.082 UTC [187] DETAIL:  Role "doccano" does not exist.
docker-celery-1    | Database unavailable on attempt 54/60: FATAL:  password authentication failed for user "doccano"

这是我的.env文件:

bob@newisa:~/doccano/docker$ cat .env
# platform settings
ADMIN_USERNAME=myuser
ADMIN_PASSWORD=VerySecret
ADMIN_EMAIL=myuser@myhome.com

# rabbit mq settings
RABBITMQ_DEFAULT_USER=doccano
RABBITMQ_DEFAULT_PASS=doccano

# database settings
POSTGRES_USER=doccano
POSTGRES_PASSWORD=doccano
POSTGRES_DB=doccano

# Flower settings
FLOWER_BASIC_AUTH=""

这是我修改后的docker-compose.prod.yml文件:

version: "3.7"
services:

  backend:
    image: doccano/doccano:backend
    container_name: doccano-backend
    volumes:
      - static_volume:/backend/staticfiles
      - media:/backend/media
      - tmp_file:/backend/filepond-temp-uploads
    env_file:
      - .env
    environment:
      CELERY_BROKER_URL: "amqp://${RABBITMQ_DEFAULT_USER}:${RABBITMQ_DEFAULT_PASS}@rabbitmq"
      DATABASE_URL: "postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@postgres:5432/${POSTGRES_DB}?sslmode=disable"
      ALLOW_SIGNUP: "True"
      DEBUG: "True"
      DJANGO_SETTINGS_MODULE: "config.settings.production"
    depends_on:
      - postgres
    networks:
      - network-backend
      - network-frontend

  celery:
    image: doccano/doccano:backend
    volumes:
      - media:/backend/media
      - tmp_file:/backend/filepond-temp-uploads
    entrypoint: ["/opt/bin/prod-celery.sh"]
    env_file:
      - .env
    environment:
      PYTHONUNBUFFERED: "1"
      CELERY_BROKER_URL: "amqp://${RABBITMQ_DEFAULT_USER}:${RABBITMQ_DEFAULT_PASS}@rabbitmq"
      DATABASE_URL: "postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@postgres:5432/${POSTGRES_DB}?sslmode=disable"
      DJANGO_SETTINGS_MODULE: "config.settings.production"
    depends_on:
      - postgres
      - rabbitmq
    networks:
      - network-backend

  flower:
    image: doccano/doccano:backend
    entrypoint: ["/opt/bin/prod-flower.sh"]
    env_file:
      - .env
    environment:
      PYTHONUNBUFFERED: "1"
      CELERY_BROKER_URL: "amqp://${RABBITMQ_DEFAULT_USER}:${RABBITMQ_DEFAULT_PASS}@rabbitmq"
      DATABASE_URL: "postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@postgres:5432/${POSTGRES_DB}?sslmode=disable"
      DJANGO_SETTINGS_MODULE: "config.settings.production"
      FLOWER_BASIC_AUTH: "${FLOWER_BASIC_AUTH}" # Format "username:password"
 depends_on:
      - celery
    ports:
      - 5555:5555
    networks:
      - network-backend
      - network-frontend

  rabbitmq:
    image: rabbitmq:3.10.7-alpine
    env_file:
      - .env
    environment:
      RABBITMQ_DEFAULT_USER: "${RABBITMQ_DEFAULT_USER}"
      RABBITMQ_DEFAULT_PASS: "${RABBITMQ_DEFAULT_PASS}"
    ports:
      - 5672:5672
    networks:
      - network-backend

  nginx:
    image: doccano/doccano:frontend
    container_name: doccano-nginx
    command: >
      /bin/sh -c
      "envsubst '
      $${WORKER_PROCESSES}
      '< /etc/nginx/nginx.conf.template
      > /etc/nginx/nginx.conf
      && nginx -g 'daemon off;'"
    environment:
      API_URL: "http://backend:8000"
      GOOGLE_TRACKING_ID: ""
      WORKER_PROCESSES: "auto"
    volumes:
      - static_volume:/static
      - media:/media
    ports:
      - 8888:8080
    depends_on:
      - backend
    networks:
      - network-frontend

  postgres:
    image: postgres:13.3-alpine
    container_name: doccano-psql
    volumes:
      - postgres_data:/var/lib/postgresql/data/
    env_file:
      - .env
     environment:
      POSTGRES_USER: "${POSTGRES_USER}"
      POSTGRES_PASSWORD: "${POSTGRES_PASSWORD}"
      POSTGRES_DB: "${POSTGRES_DB}"
    networks:
      - network-backend

volumes:
  postgres_data:
  static_volume:
  media:
  tmp_file:

networks:
  network-backend:
  network-frontend:
ndh0cuux

ndh0cuux1#

我也在使用1.8.4版本时遇到了这个错误,并将端口更改为8000。我确实有一次登录成功,但其余的都显示禁止访问。当我通过doccano-client登录时(没有CSRF问题,客户端发送的有效载荷看起来很好),我没有遇到这个问题。

相关问题