Files
kamal/test/integration/docker/deployer/app/config/deploy.yml
Donal McBreen 9c4747ec0c Replace Traefik with mproxy
[mproxy](https://github.com/kevinmcconnell/mproxy) is a custom minimal
proxy designed specifically for Kamal.

It has two big advantages over Traefik:
1. Imperative deployments - we tell it to switch from container A to
   container B, and it waits for container B to start then switches. No
   need to poll for health checks ourselves or mess around with forcing
   health checks to fail.
2. Support for multiple apps - as much as possible, configuration is
   supplied at runtime by the deploy command, allowing us to have
   multiple apps share an instance of mproxy without conflicting config.
2024-03-28 14:05:21 +00:00

34 lines
683 B
YAML

service: app
image: app
servers:
- vm1
- vm2
env:
clear:
CLEAR_TOKEN: 4321
HOST_TOKEN: "${HOST_TOKEN}"
secret:
- SECRET_TOKEN
asset_path: /usr/share/nginx/html/versions
registry:
server: registry:4443
username: root
password: root
builder:
multiarch: false
args:
COMMIT_SHA: <%= `git rev-parse HEAD` %>
healthcheck:
cmd: wget -qO- http://localhost > /dev/null || exit 1
proxy:
image: registry:4443/dmcbreen/mproxy:latest
accessories:
busybox:
service: custom-busybox
image: registry:4443/busybox:1.36.0
cmd: sh -c 'echo "Starting busybox..."; trap exit term; while true; do sleep 1; done'
roles:
- web
stop_wait_time: 5