Docker Compose conversion support
The Release team has worked with thousands of Docker Compose files to generate working environments in Kubernetes. Here is the supported conversion matrix for Docker Compose
Keys | Supported | Kubernetes | Notes |
---|---|---|---|
build | ✅ | ||
build: context | ✅ | ||
build: dockerfile | ✅ | ||
build: args | ✅ | ||
build: cache_from | 🚧 | ||
cap_add | 🚧 | ||
cap_drop | 🚧 | ||
command | ✅ | Pod.Spec.Container.Args | |
configs | ✅ | ConfigMap | Configs with "external" = true are skipped. |
configs: short-syntax | ✅ | ||
configs: long-syntax | ✅ | ||
configs: source | ✅ | ||
configs: target | ✅ | ||
configs: uid | 🚧 | ||
configs: gid | 🚧 | ||
configs: mode | ✅ | ||
cgroup_parent | ❌ | Not supported in Kubernetes. See https://github.com/kubernetes/kubernetes/issues/11986 | |
container_name | 🚧 | ||
credential_spec | ❌ | ||
deploy | ✅ | ||
deploy: mode | ❌ | kompose supports mode by setting "replicas" = 1 when "mode" = "global". Release does not support this functionality. See https://github.com/kubernetes/kompose/pull/771 | |
deploy: replicas | ✅ | Deployment.Spec.Replicas | |
deploy: placement | 🚧 | ||
deploy: update_config | 🚧 | ||
deploy: resources | ✅ | ||
deploy: restart_policy | 🚧 | ||
deploy: labels | 🚧 | ||
devices | ❌ | Not supported in Kubernetes. See https://github.com/kubernetes/kubernetes/issues/5607 | |
depends_on | ✅ | Release's Application Template - Workflows | |
dns | ❌ | ||
dns_search | ❌ | ||
domainname | 🚧 | ||
tmpfs | 🚧 | ||
entrypoint | ✅ | Pod.Spec.Container.Command | |
env_file | ✅ | Pod.Spec.Container.Env | |
environment | ✅ | Pod.Spec.Container.Env | |
expose | 🚧 | ||
endpoint_mode | 🚧 | ||
extends | ✅ | Release will read the extended file from the VCS and add the appropriate information | |
external_links | ❌ | ||
extra_hosts | ❌ | ||
group_add | 🚧 | ||
healthcheck | ✅ | ||
hostname | 🚧 | ||
image | ✅ | Deployment.Spec.Containers.Image | |
isolation | ❌ | ||
labels | 🚧 | ||
links | ❌ | ||
logging | ❌ | ||
network_mode | ❌ | ||
networks | 🚧 | ||
networks: aliases | ❌ | ||
networks: addresses | ❌ | ||
pid | 🚧 | ||
ports | ✅ | Service.Spec.Ports | |
ports: protocol | ✅ | Service.Spec.Ports | |
ports: published | ✅ | Service.Spec.Ports | |
ports: target | ✅ | Service.Spec.Ports | |
secrets | ✅ | Secrets | Release will map secret definitions into the Application Template. They require adding secrets to Release's Secrets Manager |
secrets: source | ✅ | ||
secrets: target | ✅ | ||
secrets: uid | ❌ | ||
secrets: gid | ❌ | ||
secrets: mode | ❌ | ||
security_opt | ❌ | ||
stop_grace_period | 🚧 | ||
stop_signal | ❌ | Not supported in Kuberentes currently. See https://github.com/kubernetes/kubernetes/issues/30051 | |
sysctls | ❌ | ||
ulimits | ❌ | ||
userns_mode | ❌ | ||
volumes | ✅ | PersistentVolumeClaim | Volumes with "external" = true are skipped. |
volumes: short-syntax | ✅ | ||
volumes: long-syntax | ✅ | ||
volumes: read_only | ✅ | ||
volumes: source | ✅ | PersistentVolumeClaim | |
volumes: target | ✅ | PersistentVolumeClaim | |
volumes: type | ✅ | PersistentVolumeClaim | "volume", "bind", and "tmpfs" are supported. "npipe" is not supported. |
restart | 🚧 |
Last updated