From e5bd41e45fdac7b5798095ad3456324294fd077c Mon Sep 17 00:00:00 2001 From: Alex Nork <48630278+alex-nork@users.noreply.github.com> Date: Thu, 13 Jul 2023 13:19:25 +0000 Subject: [PATCH] incorporate container and management changes --- .devcontainer/devcontainer.json | 33 ++++----- .devcontainer/docker-compose.yml | 77 ++++++++++++++++---- chirps/base_app/management/commands/redis.py | 6 +- 3 files changed, 81 insertions(+), 35 deletions(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 1e201e59..2ec324de 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,20 +1,15 @@ { - "name": "Python 3", - "dockerComposeFile": "docker-compose.yml", - "service": "app", - "workspaceFolder": "/workspace", - "shutdownAction": "stopCompose", - "features": { - "ghcr.io/devcontainers-contrib/features/rabbitmq-asdf:1": { - "version": "latest", - "erlangVersion": "latest" - }, - "ghcr.io/devcontainers-contrib/features/vault-asdf:2": { - "version": "latest" - } - }, - "settings": { - "terminal.integrated.defaultProfile.linux": "/usr/bin/fish" - }, - "remoteUser": "vscode" -} \ No newline at end of file + "name": "Python 3", + "dockerComposeFile": "docker-compose.yml", + "service": "app", + "workspaceFolder": "/workspace", + "shutdownAction": "stopCompose", + "features": { + "ghcr.io/devcontainers-contrib/features/rabbitmq-asdf:1": {}, + "ghcr.io/devcontainers-contrib/features/vault-asdf:2": {}, + "ghcr.io/devcontainers/features/docker-in-docker:2": {} + }, + "forwardPorts": [4369, 5672, 6379, 8000], + "postCreateCommand": "docker-compose up -d", + "runServices": ["redis", "celery", "rabbitmq", "vault"] +} diff --git a/.devcontainer/docker-compose.yml b/.devcontainer/docker-compose.yml index 836bf6be..e30096d2 100644 --- a/.devcontainer/docker-compose.yml +++ b/.devcontainer/docker-compose.yml @@ -1,13 +1,64 @@ -version: '3.8' - -services: - app: - image: mcr.microsoft.com/devcontainers/python:0-3.11 - volumes: - - ..:/workspace:cached - command: sleep infinity - - redis: - image: redis-stack:latest - ports: - - 6379:6379 +version: '3.8' + +services: + app: + image: mcr.microsoft.com/devcontainers/python:0-3.11 + volumes: + - ..:/workspace:cached + command: sleep infinity + depends_on: + - redis + - celery + - rabbitmq + - vault + networks: + default: + aliases: + - localhost + + celery: + build: + context: . + dockerfile: Dockerfile.celery + volumes: + - .:/workspace:cached + depends_on: + - rabbitmq + networks: + default: + aliases: + - localhost + + redis: + image: redis/redis-stack:latest + ports: + - 6379:6379 + networks: + default: + aliases: + - localhost + + rabbitmq: + image: rabbitmq:latest + ports: + - 5672:5672 + - 15672:15672 + networks: + default: + aliases: + - localhost + + vault: + image: hashicorp/vault:latest + ports: + - 8200:8200 + environment: + VAULT_DEV_ROOT_TOKEN_ID: myroot + VAULT_DEV_LISTEN_ADDRESS: 0.0.0.0:8200 + networks: + default: + aliases: + - localhost + +networks: + default: diff --git a/chirps/base_app/management/commands/redis.py b/chirps/base_app/management/commands/redis.py index 1444e306..5f5c3bd6 100644 --- a/chirps/base_app/management/commands/redis.py +++ b/chirps/base_app/management/commands/redis.py @@ -18,8 +18,8 @@ def add_arguments(self, parser): def handle(self, *args, **options): """Handle redis command""" if options['start']: - os.system('redis-server --daemonize yes') + os.system('docker-compose -f /workspace/.devcontainer/docker-compose.yml up -d redis') elif options['stop']: - os.system('redis-cli shutdown') + os.system('docker-compose -f /workspace/.devcontainer/docker-compose.yml down') elif options['status']: - os.system('redis-cli ping') + os.system('docker-compose -f /workspace/.devcontainer/docker-compose.yml ps')