{"id":13588096,"url":"https://github.com/ix-ai/swarm-launcher","last_synced_at":"2026-01-16T18:34:10.436Z","repository":{"id":53725708,"uuid":"236143366","full_name":"ix-ai/swarm-launcher","owner":"ix-ai","description":"A docker image to allow the launch of container in docker swarm, with options normally unavailable to swarm mode","archived":false,"fork":false,"pushed_at":"2025-04-06T14:51:43.000Z","size":150,"stargazers_count":46,"open_issues_count":0,"forks_count":15,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-06T15:39:25.044Z","etag":null,"topics":["docker-image","docker-swarm","moby","swarm-mode"],"latest_commit_sha":null,"homepage":"https://ix.ai/swarm-launcher","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ix-ai.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-01-25T08:17:09.000Z","updated_at":"2025-04-06T14:47:39.000Z","dependencies_parsed_at":"2024-09-15T06:40:08.062Z","dependency_job_id":"db0bc0fb-ace7-47db-840d-4ea5b9152fcf","html_url":"https://github.com/ix-ai/swarm-launcher","commit_stats":null,"previous_names":[],"tags_count":52,"template":false,"template_full_name":null,"purl":"pkg:github/ix-ai/swarm-launcher","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ix-ai%2Fswarm-launcher","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ix-ai%2Fswarm-launcher/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ix-ai%2Fswarm-launcher/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ix-ai%2Fswarm-launcher/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ix-ai","download_url":"https://codeload.github.com/ix-ai/swarm-launcher/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ix-ai%2Fswarm-launcher/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28480932,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-16T11:59:17.896Z","status":"ssl_error","status_checked_at":"2026-01-16T11:55:55.838Z","response_time":107,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker-image","docker-swarm","moby","swarm-mode"],"created_at":"2024-08-01T15:06:30.514Z","updated_at":"2026-01-16T18:34:10.411Z","avatar_url":"https://github.com/ix-ai.png","language":"Shell","funding_links":[],"categories":["Shell"],"sub_categories":[],"readme":"# swarm-launcher\n\n## Deprecation Notice\n\n**This project is deprecated and has been archived**. Please switch to [gitlab.com/egos-tech/swarm-launcher](https://gitlab.com/egos-tech/swarm-launcher).\n\nReplace your docker image with `registry.gitlab.com/egos-tech/swarm-launcher:latest`.\n\nPlease note, a new versioning format is established, starting with `1.0.0` - this version is one-to-one compatible with the latest version in this repository:\n\n```yml\nimage: registry.gitlab.com/egos-tech/swarm-launcher:1.0.0\n```\n\nThe only exception is the label for the spawned service: `tech.egos.started-by=egos.tech/swarm-launcher` instead of `ai.ix.started-by=ix.ai/swarm-launcher`.\n\nAll future updates will only be done to that project.\n\n## Description\n\n[![Pipeline Status](https://gitlab.com/ix.ai/swarm-launcher/badges/master/pipeline.svg)](https://gitlab.com/ix.ai/swarm-launcher/)\n[![Gitlab Project](https://img.shields.io/badge/GitLab-Project-554488.svg)](https://gitlab.com/ix.ai/swarm-launcher/)\n\nA docker image to allow the launch of container in docker swarm, with options normally unavailable to swarm mode\n\n## How it works\n\nThe image uses `docker-compose` to start a new project (see `LAUNCH_PROJECT_NAME`). You can either use the environment variables to configure the service started inside, or you can supply your own `/docker-compose.yml` file.\n\nEither way, `swarm-launcher` takes care of the setup, tear-down and cleanup of the project.\n\n## Supported architectures\n\nThe following architectures are supported by this image:\n\n* `linux/amd64`\n* `linux/arm64`\n* `linux/arm/v7`\n* `linux/arm/v6`\n* `linux/386`\n\n## Docs and Usage examples\n\nSee [Docs](docs/) and [Usage Examples](docs/usage_examples)\n\n## Building the image\n\n```sh\ndocker build -t swarm-launcher .\n```\n\n## Environment variables\n\nThe following environment variables are important, if you plan on using a private repository:\n\n| **Variable**          |\n|:----------------------|\n| `LOGIN_USER`          |\n| `LOGIN_PASSWORD`      |\n| `LOGIN_PASSWORD_FILE` |\n| `LOGIN_REGISTRY`      |\n\nThese variables are always used, if set:\n\n| **Variable**            | **Default**                | **Mandatory** | **Description**                                 |\n|:------------------------|:--------------------------:|:-------------:|:------------------------------------------------|\n| `LAUNCH_PROJECT_NAME`   | random (by swarm-launcher) | NO            | If you want to use a specific name for the project (similar to the stack name) |\n| `LAUNCH_PULL`           | `false`                    | NO            | Set this to `true` to check at every container start for the latest image version |\n| `LAUNCH_IMAGE`          | -                          | **YES**       | The image for the container. Mandatory in the following two circumstances: no `/docker-compose.yml` file supplied or `LAUNCH_PULL` is set to `true` |\n| `LAUNCH_ARG_ENVFILE`    | -                          | NO            | The path inside the `swarm-launcher` container with the [`env` file](https://docs.docker.com/compose/environment-variables/) used by `docker compose --env-file XXX up` |\n\nThe following environment variables are important if you don't supply a `/docker-compose.yml` file in the swarm-launcher container:\n\n| **Variable**            | **Default**                | **Mandatory** | **Description**                                 |\n|:------------------------|:--------------------------:|:-------------:|:------------------------------------------------|\n| `LAUNCH_SERVICE_NAME`   | random (by swarm-launcher) | NO            | If you want to use a specific name for the service |\n| `LAUNCH_CONTAINER_NAME` | random (by docker)         | NO            | If you want to use a specific name for the container (similar to the task name) |\n| `LAUNCH_HOSTNAME`       | -                          | NO            | If you want to use a specific hostname for the container |\n| `LAUNCH_PRIVILEGED`     | `false`                    | NO            | Set this to `true` if you want to start a privileged container |\n| `LAUNCH_DEVICES`        | -                          | NO            | Space separated list of DeviceOnHost:DeviceInContainer |\n| `LAUNCH_VOLUMES`        | -                          | NO            | Space separated list of File/FolderOnHost:File/FolderInContainer |\n| `LAUNCH_HOST_NETWORK`   | `false`                    | NO            | Set this to `true` to start the container on the host network. This option is not compatible with `LAUNCH_NETWORK_MODE`, `LAUNCH_PORTS`, `LAUNCH_NETWORKS`, `LAUNCH_EXT_NETWORKS` and `LAUNCH_EXT_NETWORKS_IPV4` |\n| `LAUNCH_NETWORK_MODE`   | -                   | NO            | Set this to a value that will be used as `network_mode`. This option is not compatible with `LAUNCH_HOST_NETWORK`, `LAUNCH_PORTS`, `LAUNCH_NETWORKS`, `LAUNCH_EXT_NETWORKS` and `LAUNCH_EXT_NETWORKS_IPV4` |\n| `LAUNCH_PORTS`          | -                          | NO            | Space separated list of PortOnHost:PortInContainer |\n| `LAUNCH_NETWORKS`       | -                          | NO            | Space separated list of project networks to create. All networks are created with `attachable: true` |\n| `LAUNCH_EXT_NETWORKS`   | -                          | NO            | Space separated list of external networks to attach to |\n| `LAUNCH_EXT_NETWORKS_IPV4` | -                       | NO            | Similar to `LAUNCH_EXT_NETWORKS`, this is a space separated list of ExistingExternalNetworkName:Ipv4Address |\n| `LAUNCH_EXT_NETWORKS_IPV6` | -                       | NO            | Similar to `LAUNCH_EXT_NETWORKS`, this is a space separated list of ExistingExternalNetworkName-Ipv6Address |\n| `LAUNCH_EXT_NETWORKS_MIXED` | -                      | NO            | Similar to `LAUNCH_EXT_NETWORKS`, this is a space separated list of ExistingExternalNetworkName-Ipv4Address-Ipv6Address |\n| `LAUNCH_CAP_ADD`        | -                          | NO            | Space separated list of capabilities to add |\n| `LAUNCH_CAP_DROP`       | -                          | NO            | Space separated list of capabilities to drop |\n| `LAUNCH_SECURITY_OPT`   | -                          | NO            | Space separated list of security options to add |\n| `LAUNCH_LABELS`         | `ai.ix.started-by=ix.ai/swarm-launcher` | NO | Space separated list of Label=Value pairs |\n| `LAUNCH_SYSCTLS`        | -                          | NO            | Space separated list of sysctl=value |\n| `LAUNCH_SHM_SIZE`       | -                          | NO            | Single value for the container SHM size. If omitted and not changed on a daemon level, all containers start with `67108864` (64 MB) |\n| `LAUNCH_COMMAND`        | -                          | NO            | A string that overrides the default command |\n| `LAUNCH_CGROUP_PARENT`  | -                          | NO            | A string that specify the parent cgroup for the container |\n| `LAUNCH_STOP_GRACE_PERIOD` | `10s` (by docker)       | NO            | Allows to override the default [stop_grace_period](https://docs.docker.com/compose/compose-file/#stop_grace_period). **Note**: It makes sense to also add a slightly higher `stop_grace_period` to the `swarm-launcher` stack as well! |\n| `LAUNCH_PID_MODE`       | -                          | NO            | Set this to `host` to enable PID address space sharing between container and host operating system |\n| `LAUNCH_ULIMITS`        | -                          | NO            | Space separated list of Key=Value pairs. **Note**: Only integers are supported, NOT hard/soft ulimits! Example: `nproc=131072 nofile=60000 core=0` |\n| `LAUNCH_EXTRA_HOSTS`    | -                          | NO            | Space separated list of HostName:Mapping pairs |\n| `LAUNCH_DNS`            | -                          | NO            | Space separated list of DNS servers |\n| `LAUNCH_DNS_SEARCH`     | -                          | NO            | Space separated list of DNS search domains |\n| `LAUNCH_MAC_ADDRESS`    | -                          | NO            | Valid mac address for the launched container |\n| `LAUNCH_ENVIRONMENTS`   | -                          | NO            | Space separated list of Key=Value pairs. **Note**: `@_@` gets replaced with a single whitespace, so you can expose environment values containing spaces |\n| `LAUNCH_ENVFILES`       | -                          | NO            | Space separated list of Key=Value pairs. **Note**: These files *must* be present on the host where the container is started |\n\n**Note**: Make sure you check out the [documentation](docs/).\n\n## Resources\n\n* GitLab: [gitlab.com/ix.ai/swarm-launcher](https://gitlab.com/ix.ai/swarm-launcher)\n* GitHub: [github.com/ix-ai/swarm-launcher](https://github.com/ix-ai/swarm-launcher)\n* GitHub Registry: `ghcr.io/ix-ai/swarm-launcher` - [ghcr.io/ix-ai/swarm-launcher](https://ghcr.io/ix-ai/swarm-launcher)\n* Docker Hub: `ixdotai/swarm-launcher` - [hub.docker.com/r/ixdotai/swarm-launcher](https://hub.docker.com/r/ixdotai/swarm-launcher)\n\n## Credits\n\nThis Docker image is inspired by the post by [@akomelj](https://github.com/akomelj) in [moby/moby#25885](https://github.com/moby/moby/issues/25885#issuecomment-573449645)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fix-ai%2Fswarm-launcher","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fix-ai%2Fswarm-launcher","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fix-ai%2Fswarm-launcher/lists"}