Add commands for managing proxy boot config. Since the proxy can be
shared by multiple applications, the configuration doesn't belong in
`config/deploy.yml`.
Instead you can set the config with:
```
Usage:
kamal proxy boot_config <set|get|clear>
Options:
[--publish], [--no-publish], [--skip-publish] # Publish the proxy ports on the host
# Default: true
[--http-port=N] # HTTP port to publish on the host
# Default: 80
[--https-port=N] # HTTPS port to publish on the host
# Default: 443
[--docker-options=option=value option2=value2] # Docker options to pass to the proxy container
```
By default we boot the proxy with `--publish 80:80 --publish 443:443`.
You can stop it from publishing ports, specify different ports and pass
other docker options.
The config is stored in `.kamal/proxy/options` as arguments to be passed
verbatim to docker run.
Where someone wants to set the options in their application they can do
that by calling `kamal proxy boot_config set` in a pre-deploy hook.
There's an example in the integration tests showing how to use this to
front kamal-proxy with Traefik, using an accessory.
30 lines
533 B
YAML
30 lines
533 B
YAML
service: app_with_traefik
|
|
image: app_with_traefik
|
|
servers:
|
|
- vm1
|
|
- vm2
|
|
deploy_timeout: 2
|
|
drain_timeout: 2
|
|
readiness_delay: 0
|
|
|
|
registry:
|
|
server: registry:4443
|
|
username: root
|
|
password: root
|
|
builder:
|
|
driver: docker
|
|
arch: <%= Kamal::Utils.docker_arch %>
|
|
args:
|
|
COMMIT_SHA: <%= `git rev-parse HEAD` %>
|
|
accessories:
|
|
traefik:
|
|
service: traefik
|
|
image: traefik:v2.10
|
|
port: 80
|
|
cmd: "--providers.docker"
|
|
options:
|
|
volume:
|
|
- "/var/run/docker.sock:/var/run/docker.sock"
|
|
roles:
|
|
- web
|