mirror of
https://github.com/moghtech/komodo.git
synced 2026-04-30 22:56:21 -05:00
* 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
48 lines
2.2 KiB
Markdown
48 lines
2.2 KiB
Markdown
# 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.
|
|
::: |