Docker compose conversion support
Behind the scenes, we use kompose.io to perform the initial translation from docker-compose.yml
to the bunnyshell.yaml
definition.
The table below states the support for each possible Docker Compose key.
Keys | Supported | Kubernetes | Notes |
---|---|---|---|
build | yes | Builds/Pushes to Docker repository. | |
build: context | yes | ||
build: dockerfile | yes | ||
build: args | yes | ||
build: cache_from | no | ||
cap_add, cap_drop | yes | Pod.Spec.Container.SecurityContext.Capabilities.Add/Drop | |
command | yes | Pod.Spec.Container.Args | |
configs | yes | ||
configs: short-syntax | yes | Only create configMap | |
configs: long-syntax | yes | If target path is /, ignore this and only create configMap | |
cgroup_parent | n/a | Not supported within Kubernetes. See issue https://github.com/kubernetes/kubernetes/issues/11986 | |
container_name | yes | Metadata.Name + Deployment.Spec.Containers.Name | |
credential_spec | no | Only applicable to Windows containers | |
deploy | yes | ||
deploy: mode | yes | ||
deploy: replicas | yes | Deployment.Spec.Replicas / DeploymentConfig.Spec.Replicas | |
deploy: placement | yes | Pod.Spec.Affinity | |
deploy: update_config | yes | Workload.Spec.Strategy | Deployment / DeploymentConfig |
deploy: resources | yes | Containers.Resources.Limits.Memory / Containers.Resources.Limits.CPU | Support for memory as well as cpu |
deploy: restart_policy | yes | Pod generation | This generated a Pod, see the user guide on restart |
deploy: labels | yes | Workload.Metadata.Labels | Only applied to workload resource |
devices | n/a | Not supported within Kubernetes, See issue https://github.com/kubernetes/kubernetes/issues/5607 | |
depends_on | n/a | ||
dns | n/a | Not used within Kubernetes. Kubernetes uses a managed DNS server | |
dns_search | n/a | See dns key | |
domainname | yes | ||
tmpfs | yes | Creates emptyDirvolume with medium set to Memory & mounts given directory inside container | |
entrypoint | yes | ||
env_file | yes | ||
environment | yes | ||
expose | yes | ||
endpoint_mode | yes | If endpoint_mode=vip, the created Service will be forced to set to NodePort type | |
extends | yes | Extends by utilizing the same image supplied | |
external_links | n/a | Kubernetes uses a flat-structure for all containers and thus external_links does not have a 1-1 conversion | |
extra_hosts | no | ||
group_add | yes | ||
healthcheck | no | ||
hostname | yes | Pod.Spec.HostName | |
image | yes | Deployment.Spec.Containers.Image | |
isolation | n/a | Not applicable as this applies to Windows with HyperV support | |
labels | yes | Metadata.Annotations | |
links | n/a | All containers in the same pod are accessible in Kubernetes | |
logging | n/a | Kubernetes has built-in logging support at the node-level | |
network_mode | n/a | Kubernetes uses its own cluster networking | |
networks | on | See networks key | |
networks: aliases | n/a | See networks key | |
networks: addresses | n/a | See networks key | |
pid | yes | Pod.Spec.HostPID | |
ports | yes | Service.Spec.Ports | |
ports: short-syntax | yes | Service.Spec.Ports | |
ports: long-syntax | yes | Service.Spec.Ports | |
secrets | yes | Secret | External Secret is not Supported |
secrets: short-syntax | yes | Secret | External Secret is not Supported |
secrets: long-syntax | yes | Secret | External Secret is not Supported |
security_opt | n/a | Kubernetes uses its own container naming scheme | |
stop_grace_period | yes | Pod.Spec.TerminationGracePeriodSeconds | |
stop_signal | n/a | Not supported within Kubernetes. See issue https://github.com/kubernetes/kubernetes/issues/30051 | |
sysctls | no | ||
ulimits | n/a | Not supported within Kubernetes. See issue https://github.com/kubernetes/kubernetes/issues/3595 | |
userns_mode | n/a | Not supported within Kubernetes and ignored in Docker Compose Version 3 | |
volumes | yes | PersistentVolumeClaim | Creates a PersistentVolumeClaim. Can only be created if there is already a PersistentVolume within the cluster |
volumes: short-syntax | yes | PersistentVolumeClaim | Creates a PersistentVolumeClaim. Can only be created if there is already a PersistentVolume within the cluster |
volumes: long-syntax | yes | PersistentVolumeClaim | Creates a PersistentVolumeClaim. Can only be created if there is already a PersistentVolume within the cluster |
restart | no |
Keys | Supported |
---|---|
Volume | n/a |
driver | n/a |
driver_opts | n/a |
external | n/a |
labels | n/a |
Network | n/a |
driver | n/a |
driver_opts | n/a |
enable_ipv6 | n/a |
ipam | n/a |
internal | n/a |
labels | n/a |
external | n/a |
Updated about 1 year ago