diff --git a/myproject/.gitignore b/myproject/.gitignore index 2e6bf1e..0c3d379 100644 --- a/myproject/.gitignore +++ b/myproject/.gitignore @@ -9,6 +9,7 @@ db.sqlite3-journal # Environment variables (contains secrets!) .env +docker/.env.docker # Virtual environment venv/ diff --git a/docker/.env.docker.example b/myproject/docker/.env.docker.example similarity index 100% rename from docker/.env.docker.example rename to myproject/docker/.env.docker.example diff --git a/docker/Dockerfile b/myproject/docker/Dockerfile similarity index 97% rename from docker/Dockerfile rename to myproject/docker/Dockerfile index 1e5b955..b9f82b7 100644 --- a/docker/Dockerfile +++ b/myproject/docker/Dockerfile @@ -32,7 +32,7 @@ COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt # Копируем проект -COPY myproject/ . +COPY . . # Создаём директории для статики и медиа RUN mkdir -p /app/staticfiles /app/media @@ -40,6 +40,7 @@ RUN mkdir -p /app/staticfiles /app/media # Создаём непривилегированного пользователя RUN useradd -m -u 1000 appuser +# Копируем entrypoint скрипт # Копируем entrypoint скрипт COPY docker/entrypoint.sh /entrypoint.sh COPY docker/create_public_tenant.py /app/docker/create_public_tenant.py diff --git a/docker/create_public_tenant.py b/myproject/docker/create_public_tenant.py similarity index 100% rename from docker/create_public_tenant.py rename to myproject/docker/create_public_tenant.py diff --git a/docker/docker-compose.yml b/myproject/docker/docker-compose.yml similarity index 77% rename from docker/docker-compose.yml rename to myproject/docker/docker-compose.yml index ce0ac01..18b1800 100644 --- a/docker/docker-compose.yml +++ b/myproject/docker/docker-compose.yml @@ -8,11 +8,14 @@ services: image: postgres:15-alpine container_name: mix_postgres restart: unless-stopped + environment: + - POSTGRES_USER=${DB_USER:-postgres} + - POSTGRES_DB=${DB_NAME:-inventory_db} env_file: - - /Volume1/DockerAppsData/mixapp/app/docker/.env.docker + - .env.docker volumes: - - /Volume1/DockerAppsData/mixapp/postgres:/var/lib/postgresql/data + - ../../postgres:/var/lib/postgresql/data healthcheck: test: [ "CMD-SHELL", "pg_isready -U ${DB_USER:-postgres} -d ${DB_NAME:-inventory_db}" ] interval: 10s @@ -28,7 +31,7 @@ services: restart: unless-stopped command: redis-server --appendonly yes volumes: - - /Volume1/DockerAppsData/mixapp/redis:/data + - ../../redis:/data healthcheck: test: [ "CMD", "redis-cli", "ping" ] interval: 10s @@ -40,13 +43,13 @@ services: # Django Web приложение web: build: - context: /Volume1/DockerAppsData/mixapp/app + context: .. dockerfile: docker/Dockerfile container_name: mix_web restart: unless-stopped command: web env_file: - - /Volume1/DockerAppsData/mixapp/app/docker/.env.docker + - .env.docker environment: - ALLOWED_HOSTS=mix.smaa.by,.mix.smaa.by,localhost,127.0.0.1 - CSRF_TRUSTED_ORIGINS=https://mix.smaa.by,https://*.mix.smaa.by @@ -58,8 +61,8 @@ services: # - /Volume1/DockerAppsData/mixapp/app:/app # Медиа и статика # Медиа и статика (монтируем туда, где их ждет Django) - - /Volume1/DockerAppsData/mixapp/media:/app/myproject/media - - /Volume1/DockerAppsData/mixapp/static:/app/myproject/staticfiles + - ../../media:/app/myproject/media + - ../../static:/app/myproject/staticfiles ports: - "8000:8000" depends_on: @@ -73,19 +76,19 @@ services: # Celery Worker для обработки задач celery-worker: build: - context: /Volume1/DockerAppsData/mixapp/app + context: .. dockerfile: docker/Dockerfile container_name: mix_celery_worker restart: unless-stopped command: celery-worker env_file: - - /Volume1/DockerAppsData/mixapp/app/docker/.env.docker + - .env.docker environment: - DB_HOST=db - REDIS_HOST=redis volumes: - - /Volume1/DockerAppsData/mixapp/app:/app - - /Volume1/DockerAppsData/mixapp/media:/app/myproject/media + - ..:/app + - ../../media:/app/myproject/media depends_on: db: condition: service_healthy @@ -97,18 +100,18 @@ services: # Celery Beat для периодических задач celery-beat: build: - context: /Volume1/DockerAppsData/mixapp/app + context: .. dockerfile: docker/Dockerfile container_name: mix_celery_beat restart: unless-stopped command: celery-beat env_file: - - /Volume1/DockerAppsData/mixapp/app/docker/.env.docker + - .env.docker environment: - DB_HOST=db - REDIS_HOST=redis volumes: - - /Volume1/DockerAppsData/mixapp/app:/app + - ..:/app depends_on: db: condition: service_healthy diff --git a/docker/entrypoint.sh b/myproject/docker/entrypoint.sh old mode 100755 new mode 100644 similarity index 100% rename from docker/entrypoint.sh rename to myproject/docker/entrypoint.sh diff --git a/docker/entrypoint.sh.example b/myproject/docker/entrypoint.sh.example similarity index 100% rename from docker/entrypoint.sh.example rename to myproject/docker/entrypoint.sh.example