149 lines
3.0 KiB
YAML
149 lines
3.0 KiB
YAML
version: '3.8'
|
|
|
|
services:
|
|
|
|
mariadb:
|
|
image: mariadb:10.11
|
|
container_name: mariadb
|
|
environment:
|
|
MYSQL_ROOT_PASSWORD: password
|
|
MYSQL_DATABASE: theapi
|
|
MYSQL_USER: theapi_user
|
|
MYSQL_PASSWORD: theapi_password
|
|
ports:
|
|
- "3306:3306"
|
|
volumes:
|
|
- mariadb_data:/var/lib/mysql
|
|
- ./initdb:/docker-entrypoint-initdb.d
|
|
healthcheck:
|
|
test: ["CMD", "mysqladmin", "ping", "-ppassword"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 5
|
|
|
|
|
|
redis-server:
|
|
image: redis
|
|
container_name: redis-server
|
|
ports:
|
|
- "6379:6379"
|
|
healthcheck:
|
|
test: ["CMD", "redis-cli", "ping"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 5
|
|
|
|
|
|
novnc:
|
|
image: theasp/novnc
|
|
container_name: novnc
|
|
ports:
|
|
- "6081:6080"
|
|
- "8080:8080"
|
|
|
|
|
|
api-server:
|
|
build:
|
|
context: .
|
|
container_name: api-server
|
|
volumes:
|
|
- .:/app
|
|
working_dir: /app
|
|
command: >
|
|
sh -c "flask run --host=0.0.0.0 --port=5000 --debug"
|
|
ports:
|
|
- "5000:5000"
|
|
environment:
|
|
FLASK_APP: api_server.py
|
|
FLASK_ENV: development
|
|
depends_on:
|
|
- mariadb
|
|
- redis-server
|
|
healthcheck:
|
|
test: ["CMD", "curl", "-f", "http://localhost:5000/api/healthz"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 5
|
|
|
|
|
|
websocket-server:
|
|
build:
|
|
context: .
|
|
container_name: websocket-server
|
|
command: python3 -m websocket_server.main
|
|
ports:
|
|
- "6001:6001"
|
|
volumes:
|
|
- .:/app
|
|
working_dir: /app
|
|
depends_on:
|
|
- mariadb
|
|
- redis-server
|
|
|
|
|
|
vnc-proxy:
|
|
build:
|
|
context: .
|
|
container_name: vnc-proxy
|
|
command: python3 vnc_proxy.py
|
|
ports:
|
|
- "6002:6002"
|
|
volumes:
|
|
- .:/app
|
|
working_dir: /app
|
|
depends_on:
|
|
- websocket-server
|
|
environment:
|
|
SOCKET_SERVER_URL: http://172.17.0.1:6001
|
|
CHECK_PERMISSION_URL: http://172.17.0.1:5000/api/check_permission
|
|
VNC_PROXY_HTTP_PORT: 6002
|
|
ENGINEIO_LOGGER_LEVEL: debug
|
|
SIO_LOGGER_LEVEL: debug
|
|
healthcheck:
|
|
test: ["CMD", "curl", "-f", "http://localhost:6002/healthz"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 5
|
|
|
|
|
|
|
|
streamlit-server:
|
|
build:
|
|
context: .
|
|
container_name: streamlit-server
|
|
command: streamlit run streamlit_server.py --server.port=8501 --server.address=0.0.0.0
|
|
ports:
|
|
- "8501:8501"
|
|
volumes:
|
|
- .:/app
|
|
working_dir: /app
|
|
environment:
|
|
SOCKET_SERVER_URL: http://172.17.0.1:6001
|
|
|
|
celery-worker:
|
|
build:
|
|
context: .
|
|
container_name: celery-worker
|
|
command: celery -A app.celery_app.celery worker --loglevel=info
|
|
volumes:
|
|
- .:/app
|
|
working_dir: /app
|
|
depends_on:
|
|
- redis-server
|
|
- mariadb
|
|
|
|
celery-beat:
|
|
build:
|
|
context: .
|
|
container_name: celery-beat
|
|
command: celery -A app.celery_app.celery beat --loglevel=info
|
|
volumes:
|
|
- .:/app
|
|
working_dir: /app
|
|
depends_on:
|
|
- redis-server
|
|
- mariadb
|
|
|
|
volumes:
|
|
mariadb_data:
|