-
Notifications
You must be signed in to change notification settings - Fork 7
Docker Container
Taku Amano edited this page Feb 20, 2022
·
2 revisions
デフォルトでは、以下のファイルでビルドされたイメージで実行されます。
- mtコンテナ : mt/mt/Dockerfile
- httpdコンテナ : mt/httpd/Dockerfile
この Dockerfile は起動時( up
や up-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
mt-devにはデフォルトのDockerfileの他に、 mt用とhttpd用のそれぞれのDockerfile.devcontainerが含まれています。 このDockerfileで起動すると、コンテナにVisual Studio Codeのdevcontainerとして接続することができます。
mtとhttpdで、それぞれ以下のような対応が含まれています。
- /src/mt.code-workspace が書き出され、これを開くとリポジトリなどがワークスペースに追加された状態で開くことができます
- Language Serverを起動するための設定が含まれています
- https://marketplace.visualstudio.com/items?itemName=richterger.perl
- 設定に以下を追加すると起動できます
"perl.perlCmd": "invoke-perl-with-mt-libs"
- 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以下のファイルを開いて設定する必要があります。