ASP.NET Core SDK コンテナで動作しているプログラムを変更する までで、最初のチュートリアルが終了した。引き続き Microsoft 公式のチュートリアルを Docker で進めていこうと思うのだが、 WebApp ディレクトリとは別のディレクトリで進めて行きたい。
一方で、 WebApp のプロジェクトも引き続き Docker にマウントしておきたいので、ディレクトリ構成を変更することにした。
やることは
となる。
まずはホスト側のディレクトリ構成を変更する。 一つ上位のディレクトリを作成し、 WebApp ディレクトリをその中に移動させる。公式のチュートリアル用のディレクトリも後ほど 上位ディレクトリの中に作成する。
上位ディレクトリの名前は今回 Projects とした。
$ mkdir Projects
$ ls
Projects WebApp create_SDK_image.sh dotnet-docker run_SDK_container.sh
$ mv WebApp Projects
起動用スクリプトを以下のように変更した。
$ vimr run_SDK_container.sh
#!/bin/sh
#get absolute path of directory contained this script
SCRIPT_DIR=$(cd $(dirname $0); pwd)
docker run --rm -it -p 5000:5000 -v $SCRIPT_DIR/Projects:/Projects dotnetsdk3.1
Projects ディレクトリを コンテナ内ルート直下にマウントするようにした。
起動してみる。
$ ./run_SDK_container.sh
#
起動した。ディレクトリを確認してみる。
/ # ls
Projects dev home media opt root sbin sys usr
bin etc lib mnt proc run srv tmp var
Projects ディレクトリがある。中身を確認する。
/ # ls Projects/
WebApp
/ #
大丈夫そうだ。
念のため、起動してみる。
# cd Project/WebApp/ && dotnet run
warn: Microsoft.AspNetCore.DataProtection.Repositories.FileSystemXmlRepository[60]
Storing keys in a directory '/root/.aspnet/DataProtection-Keys' that may not be persisted outside of the container. Protected data will be unavailable when container is destroyed.
info: Microsoft.Hosting.Lifetime[0]
Now listening on: http://0.0.0.0:5000
info: Microsoft.Hosting.Lifetime[0]
Application started. Press Ctrl+C to shut down.
info: Microsoft.Hosting.Lifetime[0]
Hosting environment: Development
info: Microsoft.Hosting.Lifetime[0]
Content root path: /Projects/WebApp
動作した。 http://localhost:5000 に接続して確認してみる。