slipway.yaml.
Nothing is written back to your repository, and conversion needs no extra permissions.
slipway stays read-only on your code.
A committed slipway.yaml takes precedence unless you pin a Compose file.
Getting a Compose repo deploying
- Create a project for the repo. Select New in the sidebar and choose your provider.
- Pick the Compose file, if the repo has more than one. slipway remembers the choice.
- Fill in the values the file references. The secrets manager on the service’s Spec view
shows which
${NAME}references are still missing. - Deploy. Every push reconverts the current file and deploys it.
docker-compose.yml, docker-compose.yaml, compose.yml and
compose.yaml, plus docker-compose.*.yml and compose.*.yml overlays.
What translates
Compose’s
build block is flattened onto the service: the context becomes rootDir and
the rest sit beside it.
A named volume mounted by exactly one service becomes that service’s disk.
Compose declares no size, so slipway provisions 10 GB and records that in the conversion
notes. Adjust disk.sizeGB in the generated spec if the workload needs more, because the
size is fixed once the disk is created.
A named volume mounted by several services has no equivalent, since slipway gives each
service its own disk rather than sharing one. Those mounts are dropped with a warning: the
paths stay writable but the data is ephemeral. Point both services at a database instead.
A bind mount of a committed repository file, the classic
./init.sql:/docker-entrypoint-initdb.d/init.sql, is projected into the container
read-only, so init scripts and config files work unchanged. See
files.
What is dropped
Database and cache services run as stateless containers unless a named volume gave them a
disk. For data that has to survive, declare a managed database in
a
slipway.yaml, or point your app at an external provider through a
secret.
Interpolation
Write Compose interpolations exactly as you do locally. The same${VAR} resolves on
slipway, secret store first and then variable store, each scoped project then organization.
Shell modifiers work too:
slipway lists every referenced key and seeds each as a variable or a secret by name. Change
a row’s type if the guess is wrong.
x-slipway overrides
For the few things Compose cannot express, add anx-slipway block to a service. docker compose ignores it.
docker-compose.yml
depends_on,
volumes and interpolation all work without annotation.
Moving to slipway.yaml
Compose is a good way to get deploying without changing the repo. Once you want disks sized properly, managed databases, previews or scaling, export the converted spec from the service’s Spec view and commit it asslipway.yaml. From then on the file is
authoritative.