Arch changes and feature flags
This commit is contained in:
@@ -1,35 +1,47 @@
|
||||
services:
|
||||
mysql:
|
||||
image: mysql:8.0
|
||||
container_name: membership_mysql
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
MYSQL_ROOT_PASSWORD: ${DATABASE_PASSWORD:-rootpassword}
|
||||
MYSQL_DATABASE: ${DATABASE_NAME:-membership_db}
|
||||
MYSQL_USER: ${DATABASE_USER:-membership_user}
|
||||
MYSQL_PASSWORD: ${DATABASE_PASSWORD:-change_this_password}
|
||||
# No external port exposure - database only accessible on private network
|
||||
expose:
|
||||
- "3306"
|
||||
volumes:
|
||||
- mysql_data:/var/lib/mysql
|
||||
networks:
|
||||
- membership_private
|
||||
healthcheck:
|
||||
test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
|
||||
start_period: 10s
|
||||
interval: 5s
|
||||
timeout: 5s
|
||||
retries: 10
|
||||
# mysql:
|
||||
# image: mysql:8.0
|
||||
# container_name: membership_mysql
|
||||
# restart: unless-stopped
|
||||
# environment:
|
||||
# MYSQL_ROOT_PASSWORD: ${DATABASE_PASSWORD:-secure_root_password_change_this}
|
||||
# MYSQL_DATABASE: ${DATABASE_NAME:-membership_db}
|
||||
# MYSQL_USER: ${DATABASE_USER:-membership_user}
|
||||
# MYSQL_PASSWORD: ${DATABASE_PASSWORD:-secure_password_change_this}
|
||||
# # No external port exposure - database only accessible on private network
|
||||
# expose:
|
||||
# - "3306"
|
||||
# volumes:
|
||||
# - mysql_data:/var/lib/mysql
|
||||
# networks:
|
||||
# - membership_private
|
||||
# healthcheck:
|
||||
# test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
|
||||
# start_period: 10s
|
||||
# interval: 5s
|
||||
# timeout: 5s
|
||||
# retries: 10
|
||||
|
||||
backend:
|
||||
build:
|
||||
context: ./backend
|
||||
dockerfile: Dockerfile
|
||||
container_name: membership_backend
|
||||
restart: unless-stopped
|
||||
env_file:
|
||||
- .env
|
||||
environment:
|
||||
# Database configuration
|
||||
- DATABASE_HOST=${DATABASE_HOST}
|
||||
- DATABASE_PORT=${DATABASE_PORT}
|
||||
- DATABASE_USER=${DATABASE_USER}
|
||||
- DATABASE_PASSWORD=${DATABASE_PASSWORD}
|
||||
- DATABASE_NAME=${DATABASE_NAME}
|
||||
# Application configuration
|
||||
- SECRET_KEY=${SECRET_KEY}
|
||||
- ALGORITHM=${ALGORITHM}
|
||||
- ACCESS_TOKEN_EXPIRE_MINUTES=${ACCESS_TOKEN_EXPIRE_MINUTES}
|
||||
extra_hosts:
|
||||
- "host.docker.internal:host-gateway"
|
||||
ports:
|
||||
- "6000:8000" # Only expose backend API to host
|
||||
volumes:
|
||||
@@ -39,18 +51,15 @@ services:
|
||||
- uploads_data:/app/uploads
|
||||
command: >
|
||||
sh -c "alembic upgrade head && uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload"
|
||||
depends_on:
|
||||
mysql:
|
||||
condition: service_healthy
|
||||
networks:
|
||||
- membership_private # Access to database on private network
|
||||
# depends_on:
|
||||
# mysql:
|
||||
# condition: service_healthy
|
||||
|
||||
frontend:
|
||||
build:
|
||||
context: ./frontend
|
||||
dockerfile: Dockerfile
|
||||
target: development
|
||||
container_name: membership_frontend
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- VITE_HOST_CHECK=false
|
||||
@@ -63,8 +72,6 @@ services:
|
||||
- ./frontend/vite.config.ts:/app/vite.config.ts
|
||||
depends_on:
|
||||
- backend
|
||||
networks:
|
||||
- membership_private
|
||||
|
||||
#frontend-prod:
|
||||
# build:
|
||||
@@ -80,12 +87,7 @@ services:
|
||||
# networks:
|
||||
# - membership_private
|
||||
|
||||
networks:
|
||||
membership_private:
|
||||
driver: bridge
|
||||
internal: false # Allow outbound internet access for backend
|
||||
# Database is not exposed to host - only accessible within this network
|
||||
|
||||
volumes:
|
||||
mysql_data:
|
||||
# mysql_data:
|
||||
uploads_data:
|
||||
|
||||
Reference in New Issue
Block a user