Running containers with kubedock
Kubedock is a minimal container engine implementation that gives you a Podman-/docker-like experience inside a Che workspace. Kubedock is especially useful when dealing with ad-hoc, ephemeral, and testing containers, such as in the use cases listed below:
-
Executing application tests which rely on Testcontainers framework.
-
Using Quarkus Dev Services.
-
Running a container stored in remote container registry, for local development purposes
|
The image you want to use with kubedock must be compliant with Openshift Container Platform guidelines. Otherwise, running the image with kubedock will result in a failure even if the same image runs locally without issues. |
After enabling the kubedock environment variable, kubedock will run the following podman commands:
-
podman run -
podman ps -
podman exec -
podman cp -
podman logs -
podman inspect -
podman kill -
podman rm -
podman wait -
podman stop -
podman start
Other commands such as podman build are started by the local Podman.
|
Using
|
-
An image compliant with Openshift Container Platform guidelines.
-
Add
KUBEDOCK_ENABLED=trueenvironment variable to the devfile.-
(OPTIONAL) Use the
KUBEDOCK_PARAMvariable to specify additional kubedock parameters. The list of variables is available here. Alternatively, you can use the following command to view the available options:# kubedock server --help
-
schemaVersion: 2.2.0
metadata:
name: kubedock-sample-devfile
components:
- name: tools
container:
image: quay.io/devfile/universal-developer-image:latest
memoryLimit: 8Gi
memoryRequest: 1Gi
cpuLimit: "2"
cpuRequest: 200m
env:
- name: KUBEDOCK_PARAMS
value: "--reverse-proxy --kubeconfig /home/user/.kube/config --initimage quay.io/agiertli/kubedock:0.13.0"
- name: USE_JAVA17
value: "true"
- value: /home/jboss/.m2
name: MAVEN_CONFIG
- value: -Xmx4G -Xss128M -XX:MetaspaceSize=1G -XX:MaxMetaspaceSize=2G
name: MAVEN_OPTS
- name: KUBEDOCK_ENABLED
value: 'true'
- name: DOCKER_HOST
value: 'tcp://127.0.0.1:2475'
- name: TESTCONTAINERS_RYUK_DISABLED
value: 'true'
- name: TESTCONTAINERS_CHECKS_DISABLE
value: 'true'
endpoints:
- exposure: none
name: kubedock
protocol: tcp
targetPort: 2475
- exposure: public
name: http-booster
protocol: http
targetPort: 8080
attributes:
discoverable: true
urlRewriteSupported: true
- exposure: internal
name: debug
protocol: http
targetPort: 5005
volumeMounts:
- name: m2
path: /home/user/.m2
- name: m2
volume:
size: 10G
|
You must configure the Podman or docker API to point to kubedock setting
At the same time, you must configure Podman to point to local Podman when building the container. |