mirror of
https://github.com/MarioSpore/Grinch-AP.git
synced 2025-10-20 20:01:31 -06:00

* feat(docker): Add initial Docker configuration for project - Add .dockerignore file to ignore unnecessary files - Create Dockerfile with basic build and deployment configuration * feat(docker): Updated Docker configuration for improved security and build efficiency - Removed sensitive files from .dockerignore - Moved WORKDIR to /app in Dockerfile - Added gunicorn==23.0.0 dependency in RUN command - Created new docker-compose.yml file for service definition * feat(deployment): Implement containerized deployment configuration - Add additional environment variables for Python optimization - Update Dockerfile with new dependencies: eventlet, gevent, tornado - Create docker-compose.yml and configure services for web and nginx - Implement example configurations for web host settings and gunicorn - Establish nginx configuration for reverse proxy - Remove outdated docker-compose.yml from root directory * feat(deploy): Introduce Docker Compose configuration for multi-world deployment - Separate web service into two containers, one for main process and one for gunicorn - Update container configurations for improved security and maintainability - Remove unused volumes and network configurations * docs: Add new documentation for deploying Archipelago using containers - Document standalone image build and run process - Include example Docker Compose file for container orchestration - Provide information on services defined in the `docker-compose.yaml` file - Mention optional Enemizer feature and Git requirements * fixup! feat(docker): Updated Docker configuration for improved security and build efficiency - Removed sensitive files from .dockerignore - Moved WORKDIR to /app in Dockerfile - Added gunicorn==23.0.0 dependency in RUN command - Created new docker-compose.yml file for service definition * feat(deploy): Updated gunicorn configuration example - Adjusted worker and thread counts - Switched worker class from sync to gthread - Changed log level to info - Added example code snippet for customizing worker count * fix(deploy): Adjust concurrency settings for self-launch configuration - Reduce the number of world generators from 8 to 3 - Decrease the number of hosters from 5 to 4 * docs(deploy using containers): Improve readability, fix broken links - Update links to other documentation pages - Improve formatting for better readability - Remove unnecessary sections and files - Add note about building the image requiring a local copy of ArchipelagoMW source code * Update deploy/example_config.yaml Co-authored-by: black-sliver <59490463+black-sliver@users.noreply.github.com> * Update deploy/example_selflaunch.yaml Co-authored-by: black-sliver <59490463+black-sliver@users.noreply.github.com> * Update Dockerfile Co-authored-by: black-sliver <59490463+black-sliver@users.noreply.github.com> * Update deploy/example_selflaunch.yaml Co-authored-by: black-sliver <59490463+black-sliver@users.noreply.github.com> * fixup! Update Dockerfile * fix(Dockerfile): Update package installations to use latest versions - Remove specific version pins for git and libc6-dev - Ensure compatibility with newer package updates * feat(ci): Add GitHub Actions workflow for building and publishing Docker images - Create a new workflow for Docker image build and publish - Configure triggers for push and pull_request on main branch - Set up QEMU and Docker Buildx for multi-platform builds - Implement Docker login for GitHub Container Registry - Include Docker image metadata extraction and tagging * feat(healthcheck): Update Dockerfile and docker-compose for health checks - Add health check for the Webhost service in Dockerfile - Modify docker-compose to include a placeholder health check for multiworld service - Standardize comments and remove unnecessary lines * Revert "feat(ci): Add GitHub Actions workflow for building and publishing Docker images" This reverts commit 32a51b272627d99ca9796cbfda2e821bfdd95c70. * feat(docker): Enhance Dockerfile with Cython build stage - Add Cython builder stage for compiling speedups - Update package installation and organization for efficiency - Improve caching by copying requirements before installing - Add documentation for rootless Podman * fixup! feat(docker): Enhance Dockerfile with Cython build stage - Add Cython builder stage for compiling speedups - Update package installation and organization for efficiency - Improve caching by copying requirements before installing - Add documentation for rootless Podman --------- Co-authored-by: Adrian Priestley <apriestley@gmail.com> Co-authored-by: black-sliver <59490463+black-sliver@users.noreply.github.com> Co-authored-by: Adrian Priestley <apriestley@bob.localdomain>
62 lines
1.7 KiB
YAML
62 lines
1.7 KiB
YAML
services:
|
|
multiworld:
|
|
# Build only once. Web service uses the same image build
|
|
build:
|
|
context: ..
|
|
# Name image for use in web service
|
|
image: archipelago-base
|
|
# Use locally-built image
|
|
pull_policy: never
|
|
# Launch main process without website hosting (config override)
|
|
entrypoint: python WebHost.py --config_override selflaunch.yaml
|
|
volumes:
|
|
# Mount application volume
|
|
- app_volume:/app
|
|
|
|
# Mount configs
|
|
- ./example_config.yaml:/app/config.yaml
|
|
- ./example_selflaunch.yaml:/app/selflaunch.yaml
|
|
|
|
# Expose on host network for access to dynamically mapped ports
|
|
network_mode: host
|
|
|
|
# No Healthcheck in place yet for multiworld
|
|
healthcheck:
|
|
test: ["NONE"]
|
|
web:
|
|
# Use image build by multiworld service
|
|
image: archipelago-base
|
|
# Use locally-built image
|
|
pull_policy: never
|
|
# Launch gunicorn targeting WebHost application
|
|
entrypoint: gunicorn -c gunicorn.conf.py
|
|
volumes:
|
|
# Mount application volume
|
|
- app_volume:/app
|
|
|
|
# Mount configs
|
|
- ./example_config.yaml:/app/config.yaml
|
|
- ./example_gunicorn.conf.py:/app/gunicorn.conf.py
|
|
environment:
|
|
# Bind gunicorn on 8000
|
|
- PORT=8000
|
|
|
|
nginx:
|
|
image: nginx:stable-alpine
|
|
volumes:
|
|
# Mount application volume
|
|
- app_volume:/app
|
|
|
|
# Mount config
|
|
- ./example_nginx.conf:/etc/nginx/nginx.conf
|
|
ports:
|
|
# Nginx listening internally on port 80 -- mapped to 8080 on host
|
|
- 8080:80
|
|
depends_on:
|
|
- web
|
|
|
|
volumes:
|
|
# Share application directory amongst multiworld and web services
|
|
# (for access to log files and the like), and nginx (for static files)
|
|
app_volume:
|