Skip to content

Docker Container

Taku Amano edited this page Feb 20, 2022 · 2 revisions

起動するdocker imageのカスタマイズ

デフォルトでは、以下のファイルでビルドされたイメージで実行されます。

  • mtコンテナ : mt/mt/Dockerfile
  • httpdコンテナ : mt/httpd/Dockerfile

この Dockerfile は起動時( upup-psgi の実行時)に環境変数で異なるものを指定することができます。 mtコンテナとhttpdコンテナで、それぞれ以下の環境変数になります。

  • DOCKER_MT_DOCKERFILE
  • DOCKER_HTTPD_DOCKERFILE

例えば、mtコンテナの中でtigコマンドを使いたい場合には、 mt/mt/Dockerfile を /path/to/Dockerfile にコピーして以下のように変更して、

ARG DOCKER_MT_IMAGE
FROM ${DOCKER_MT_IMAGE}

COPY build-script/*.sh /tmp/build-script/
RUN /bin/bash /tmp/build-script/apache2.sh \
    && rm -rf /tmp/build-script

RUN RUN set -ex \
    \
    && apt-get update \
    && apt-get --no-install-recommends -y install tig \
    && apt-get clean \
    && rm -rf /var/cache/apt/archives/* /var/lib/apt/lists/*

以下のように起動することができます。

$ DOCKER_MT_DOCKERFILE=/path/to/Dockerfile make up-psgi ...

このとき、コンテキストは mt/mt および mt/httpd のままになります。コンテキストも含めて独自の設定でビルドをしたい場合には、以下の環境変数にコンテキストのパスを指定することができます。

  • DOCKER_MT_BUILD_CONTEXT
  • DOCKER_HTTPD_BUILD_CONTEXT

Dockerfile.devcontainer

mt-devにはデフォルトのDockerfileの他に、 mt用とhttpd用のそれぞれのDockerfile.devcontainerが含まれています。 このDockerfileで起動すると、コンテナにVisual Studio Codeのdevcontainerとして接続することができます。

mtとhttpdで、それぞれ以下のような対応が含まれています。

共通

  • /src/mt.code-workspace が書き出され、これを開くとリポジトリなどがワークスペースに追加された状態で開くことができます

mt

httpd (実験的なサポートの段階です)

  • xdebug を利用することができます
    • https://marketplace.visualstudio.com/items?itemName=xdebug.php-debug
    • 設定としてはプラグインの初期値で利用できます
    • 構造が若干特殊な状況になっていて、 /src/mt.code-workspaceで開かれるソースコードは/src以下になりますが、実行されているのは/var/www/cgi-bin/mt以下になるので、ブレークポイントは/var/www/cgi-bin/mt以下のファイルを開いて設定する必要があります。