簡體   English   中英

如何使用rabbitmq從docker容器運行Django應用程序

[英]How to run Django app from docker containers with rabbitmq

我有一個 django 應用程序,我想在本地運行它並查看我在本地主機上同時進行的更改,而不是每次都將其部署到生產服務器。 我以前的開發人員已將這些放在 read me 上,我嘗試了這些步驟,但無法在本地啟動它。

docker run --rm --name postgres -e POSTGRES_PASSWORD=password -p 5432:5432 - v pgdata:/var/lib/postgresql/data -d postgres:9.6.2
docker run --name redis -d -p 6379:6379 redis
docker run --rm -d --hostname my-rabbit --name rabbitmq -p 5671:5671 -p 5672:5672 -p 4369:4369 -p 25672:25672 rabbitmq:3
docker exec -it rabbitmq bash
rabbitmqctl add_user wee wee
rabbitmqctl add_vhost wee
rabbitmqctl set_permissions -p wee wee ".*" ".*" ".*"

我在依賴其他幾個服務時進行開發的方式是使用 docker-compose 來啟動所有內容並使其互連。 例如,您現在使用的等效於以下內容

version: '3.5'

volumes:
  pgdata:
services:
  postgres:
    container_name: "postgres"
    image: postgres:9.6.2
    ports:
      - "5432:5432"
    volumes:
      - pgdata:/var/lib/postgresql/data
    environment:
      POSTGRES_PASSWORD: "password"
  redis:
    container_name: "redis"
    image: redis
    ports:
      - "6379:6379"
  rabbitmq:
    container_name: "rabbitmq"
    image: rabbitmq:3
    hostname: my-rabbit
    ports:
      - "5671:5671"
      - "5672:5672"
      - "4369:4369"
      - "25672:25672"

然后,我將為您的 django 應用程序定義另一個服務,但您可以在本地主機上擁有所有可供 django 訪問的服務就足夠了。 如果您要定義另一個服務,它可能如下所示。 django: container_name: "django_app" image: python:latest卷: - "./path-to-your-application/:/path-to-where-your-code-will-run/:rw depends_on: - postgres - rabbit_mq - reddis 環境:SOME_SETTING:“它的價值”

使用 docker compose 的好處是您可以使用docker-compose up -d一次啟動整個應用程序。 此外,您不必擔心網絡,因為所有這些都將出現在一個網絡中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM