Files
komodo/docsite/docs/docker-compose.md
Maxwell Becker 5fc0a87dea 1.14 - Rename to Komodo - Docker Management (#56)
* setup network page

* add Network, Image, Container

* Docker ListItems and Inspects

* frontend build

* dev0

* network info working

* fix cargo lock

* dev1

* pages for the things

* implement Active in dashboard

* RunBuild update trigger list refresh

* rename deployment executions to StartDeployment etc

* add server level container control

* dev2

* add Config field to Image

* can get image labels from Config.Labels

* mount container page

* server show resource count

* add GetContainerLog api

* add _AllContainers api

* dev3

* move ResourceTarget to entities mod

* GetResourceMatchingContainer api

* connect container to resource

* dev4 add volume names to container list items

* ts types

* volume / image / network unused management

* add image history to image page

* fix PruneContainers incorret Operation

* update cache for server for server after server actions

* dev5

* add singapore to Hetzner

* implement delete single network / image / volume api

* dev6

* include "in use" on Docker Lists

* add docker resource delete buttons

* is nice

* fix volume all in use

* remove google font dependency

* use host networking in test compose

* implement Secret Variables (hidden in logs)

* remove unneeded borrow

* interpolate variables / secrets into extra args / onclone / onpull / command etc

* validate empty strings before SelectItem

* rename everything to Komodo

* rename workspace to komodo

* rc1
2024-09-01 15:38:40 -07:00

2.2 KiB

Docker Compose

Komodo supports docker compose through the Stack resource.

Define the compose file/s

Komodo supports 3 ways of defining the compose files: 1. Write them in the UI, and Komodo will write them to your host at deploy-time. 2. Store them in a git repo, and have Komodo clone it on the host to deploy. 3. Store the files anywhere on the host, and Komodo will just run the compose commands on the existing files.

The recommended way to deploy Stacks is using compose files located in a git repo.

If you manage your compose files in git repos:

  • All your files, across all servers, are available locally to edit in your favorite text editor.
  • All of your changes are tracked, and can be reverted.
  • You can use the git webhooks to do other automations when you change the compose file contents. Redeploying will be as easy as just git push.

:::info Many Komodo resources need access to git repos. There is an in-built token management system (managed in UI or in config file) to give resources access to credentials. All resources which depend on git repos are able to use these credentials to access private repos. :::

Importing Existing Compose projects

First create the Stack in Komodo, and ensure it has access to the compose files using one of the three methods above. Make sure to attach the server you wish to deploy on.

In order for Komodo to pick up a running project, it has to know the compose "project name". You can find the project name by running docker compose ls on the host.

By default, Komodo will assume the Stack name is the compose project name. If this is different than the project name on the host, you can configure a custom "Project Name" in the config.

Pass Environment Variables

Komodo is able to pass custom environment variables to the docker compose process. This works by:

  1. Write the variables to a ".env" file on the host at deploy-time.
  2. Pass the file to docker compose using the --env-file flag.

:::info Just like all other resources with Environments (Deployments, Repos, Builds), Stack Environments support Variable and Secret interpolation. Define global variables in the UI and share the values across environments. :::