[英]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.