1.6. kubedock でコンテナーを実行する
Kubedock は、OpenShift Dev Spaces ワークスペース内で Podman/docker のようなエクスペリエンスを提供する最小限のコンテナーエンジン実装です。Kubedock は、以下に示すユースケースのように、アドホックコンテナー、エフェメラルコンテナー、テストコンテナーを扱う場合に特に便利です。
- Testcontainers フレームワークに依存するアプリケーションテストを実行します。
- Quarkus Dev Services を使用します。
- ローカル開発の目的で、リモートコンテナーレジストリーに保存されているコンテナーを実行します。
kubedock で使用するイメージは、Openshift Container Platform のガイドライン に準拠している必要があります。そうしないと、同じイメージがローカルで問題なく実行されていても、kubedock でイメージを実行すると失敗します。
kubedock の有効化
kubedock 環境変数を有効にすると、kubedock は次の podman
コマンドを実行します。
-
podman run
-
podman ps
-
podman exec
-
podman cp
-
podman logs
-
podman inspect
-
podman kill
-
podman rm
-
podman wait
-
podman stop
-
podman start
podman build
などの他のコマンドは、ローカル Podman によって開始されます。
kubedock で podman
コマンドを使用する場合、以下の制限があります。
-
podman build -t <image> . && podman run <image>
コマンドは失敗します。代わりにpodman build -t <image> . && podman push <image> && podman run <image>
を使用してください。 -
podman generate kube
コマンドはサポートされません。 -
--env
オプションを指定すると、podman run
コマンドが失敗します。
前提条件
- Openshift Container Platform ガイドライン に準拠するイメージ。
プロセス
KUBEDOCK_ENABLED=true
環境変数を devfile に追加します。(オプション)
KUBEDOCK_PARAM
変数を使用して、追加の kubedock パラメーターを指定します。変数のリストは ここから 入手できます。または、次のコマンドを使用して、使用可能なオプションを表示することもできます。# 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
コンテナーを実行するときは、kubedock 設定 CONTAINER_HOST=tcp://127.0.0.1:2475
または DOCKER_HOST=tcp://127.0.0.1:2475
を指すように Podman または docker API を設定する必要があります。
同時に、コンテナーを構築するときに、ローカル Podman を指すように Podman を設定する必要があります。