事前知識
GitHub
今回の記事で紹介したソースコードをGitHubで公開しています。
実行方法
以下コマンドで各項目が実行できます。
docker-compose up -d
DB関連
DynamoDB
version: '3.8'
services:
dynamodb-local:
image: amazon/dynamodb-local
ports:
- "8000:8000" # ローカルポート8000をコンテナの8000ポートにマッピング
volumes:
- dynamodb-data:/home/dynamodblocal/data # データの永続化
command: "-jar DynamoDBLocal.jar -sharedDb -dbPath ./data"
dynamodb-admin:
image: aaronshaf/dynamodb-admin
environment:
DYNAMO_ENDPOINT: http://dynamodb-local:8000
ports:
- "8001:8001" # ローカルポート8001をコンテナの8001ポートにマッピング
depends_on:
- "dynamodb-local"
volumes:
dynamodb-data: # データボリュームの定義
このdocker-compose.yml
ファイルは、Amazon DynamoDB LocalとDynamoDB Adminという2つのサービスを定義しているDocker Composeの設定ファイルです。
1. dynamodb-local
このサービスは、AmazonのDynamoDB Localを使用しています。
DynamoDB Localは、AWSのDynamoDBのオンプレミスバージョンで、開発やテスト目的でローカル環境でDynamoDBを模倣するために使用されます。
-
イメージ:
amazon/dynamodb-local
は、DynamoDB Localの公式Dockerイメージです。 -
ポート:
"8000:8000"
は、ホストマシンの8000ポートをコンテナの8000ポートにマッピングします。これにより、ホストマシンの8000ポートを通じてDynamoDB Localにアクセスできます。 -
ボリューム:
dynamodb-data:/home/dynamodblocal/data
は、コンテナ内のDynamoDB Localのデータをホストマシン上の名前付きボリューム(dynamodb-data
)に保存します。これにより、コンテナが停止または削除されてもデータが保持されます。 -
コマンド:
"-jar DynamoDBLocal.jar -sharedDb -dbPath ./data"
は、DynamoDB Localを起動するためのコマンドです。-sharedDb
オプションにより、すべてのクライアントが同じデータベースインスタンスを共有し、-dbPath
オプションでデータの保存場所を指定しています。
2. dynamodb-admin
このサービスは、DynamoDB Localのデータを管理するためのWebベースの管理ツール、DynamoDB Adminを使用しています。
-
イメージ:
aaronshaf/dynamodb-admin
は、DynamoDB AdminのDockerイメージです。 -
環境変数:
DYNAMO_ENDPOINT: http://dynamodb-local:8000
は、DynamoDB Adminが接続するDynamoDB Localのエンドポイントを指定します。 -
ポート:
"8001:8001"
は、ホストマシンの8001ポートをコンテナの8001ポートにマッピングします。これにより、ホストマシンの8001ポートを通じてDynamoDB Adminにアクセスできます。 -
depends_on:
depends_on: - "dynamodb-local"
は、dynamodb-admin
サービスが起動する前にdynamodb-local
サービスが起動していることを保証します。
volumes
-
dynamodb-data: このセクションで、
dynamodb-data
という名前のデータボリュームが定義されています。これはdynamodb-local
サービスで使用され、データの永続化を可能にします。
MySQL
version: '3.8'
services:
mysql:
image: mysql:8.0
volumes:
- mysql-data:/var/lib/mysql # データの永続化
- ./my-custom.cnf:/etc/mysql/conf.d/my-custom.cnf # カスタム設定ファイル
environment:
MYSQL_DATABASE: mydb
MYSQL_USER: user
MYSQL_PASSWORD: password
MYSQL_ROOT_PASSWORD: rootpassword
ports:
- "3306:3306" # ホストマシンのポートをコンテナにマッピング
phpmyadmin:
image: phpmyadmin/phpmyadmin
environment:
PMA_HOST: mysql
PMA_PORT: 3306
ports:
- "8080:80" # ホストマシンのポート8080をコンテナの80ポートにマッピング
depends_on:
- mysql
volumes:
mysql-data: # データボリュームの定義
このdocker-compose.yml
ファイルは、MySQLデータベースサーバーとphpMyAdminインターフェースをセットアップするためのDocker Composeの設定です。
1. mysql
このサービスはMySQLデータベースを構築します。
-
イメージ:
mysql:8.0
は、MySQLのバージョン8.0を使用することを指定しています。 -
ボリューム:
-
mysql-data:/var/lib/mysql
: これにより、MySQLのデータはDockerボリューム(mysql-data
)に保存され、データの永続性が保証されます。コンテナが削除されても、データは保持されます。 -
./my-custom.cnf:/etc/mysql/conf.d/my-custom.cnf
: これはホストマシンのカスタム設定ファイル(my-custom.cnf
)をコンテナ内のMySQL設定ディレクトリにマウントします。これにより、デフォルトの設定を上書きできます。
-
-
環境変数:
MYSQL_DATABASE
,MYSQL_USER
,MYSQL_PASSWORD
,MYSQL_ROOT_PASSWORD
これらはMySQLの初期設定(データベース名、ユーザー名、ユーザーとrootのパスワード)を定義します。 -
ポート:
"3306:3306"
はホストマシンの3306ポートをコンテナの3306ポートにマッピングします。これにより、ホストからMySQLサーバーにアクセスできます。
2. phpmyadmin
このサービスは、WebベースのMySQLデータベース管理ツールであるphpMyAdminを提供します。
-
イメージ:
phpmyadmin/phpmyadmin
はphpMyAdminの公式Dockerイメージです。 -
環境変数:
-
PMA_HOST: mysql
はphpMyAdminが接続するMySQLホスト(この場合はmysql
サービス)を指定します。 -
PMA_PORT: 3306
はMySQLのポートを指定します。
-
-
ポート:
"8080:80"
はホストマシンの8080ポートをコンテナの80ポート(phpMyAdminのデフォルトポート)にマッピングします。これにより、ホストの8080ポートを通じてphpMyAdminにアクセスできます。 -
depends_on:
depends_on: - mysql
は、phpMyAdminサービスが起動する前にMySQLサービスが起動していることを保証します。
volumes
-
mysql-data: このセクションで、
mysql-data
という名前のデータボリュームが定義されています。これはmysql
サービスで使用され、MySQLデータベースのデータの永続化を可能にします。
PostgreSQL
version: '3.8'
services:
postgres:
image: postgres:14
volumes:
- postgres-data:/var/lib/postgresql/data # データの永続化
- ./init.sql:/docker-entrypoint-initdb.d/init.sql # 初期化スクリプト
environment:
POSTGRES_DB: mydb
POSTGRES_USER: user
POSTGRES_PASSWORD: password
ports:
- "5432:5432" # ホストマシンのポートをコンテナにマッピング
pgadmin:
image: dpage/pgadmin4
environment:
PGADMIN_DEFAULT_EMAIL: admin@admin.com
PGADMIN_DEFAULT_PASSWORD: root
ports:
- "5050:80" # ホストマシンのポート5050をコンテナの80ポートにマッピング
depends_on:
- postgres
volumes:
postgres-data: # データボリュームの定義
このdocker-compose.yml
ファイルは、PostgreSQLデータベースとpgAdminというWebベースの管理ツールをセットアップするためのDocker Composeの設定です。
1. postgres
このサービスはPostgreSQLデータベースを構築します。
-
イメージ:
postgres:14
は、PostgreSQLのバージョン14の公式Dockerイメージを指定しています。 -
ボリューム:
-
postgres-data:/var/lib/postgresql/data
: これにより、PostgreSQLのデータがDockerボリューム(postgres-data
)に保存され、データの永続性が保証されます。コンテナが削除されても、データは保持されます。 -
./init.sql:/docker-entrypoint-initdb.d/init.sql
: ホストマシンのinit.sql
スクリプトをコンテナ内のPostgreSQL初期化ディレクトリにマウントします。コンテナ起動時にこのスクリプトが実行され、データベースの初期設定やスキーマの作成が行われます。
-
-
環境変数:
POSTGRES_DB
,POSTGRES_USER
,POSTGRES_PASSWORD
はそれぞれPostgreSQLのデータベース名、ユーザー名、ユーザーパスワードを指定します。 -
ポート:
"5432:5432"
はホストマシンの5432ポートをコンテナの5432ポートにマッピングします。これにより、ホストからPostgreSQLサーバーにアクセスできます。
2. pgadmin
このサービスは、WebベースのPostgreSQLデータベース管理ツールであるpgAdminを提供します。
-
イメージ:
dpage/pgadmin4
はpgAdminの公式Dockerイメージです。 -
環境変数:
-
PGADMIN_DEFAULT_EMAIL
: pgAdminのデフォルトログインメールアドレスを設定します。 -
PGADMIN_DEFAULT_PASSWORD
: pgAdminのデフォルトログインパスワードを設定します。
-
-
ポート:
"5050:80"
はホストマシンの5050ポートをコンテナの80ポート(pgAdminのデフォルトポート)にマッピングします。これにより、ホストの5050ポートを通じてpgAdminにアクセスできます。 -
depends_on:
depends_on: - postgres
は、pgAdminサービスが起動する前にPostgreSQLサービスが起動していることを保証します。
volumes
-
postgres-data: このセクションで、
postgres-data
という名前のデータボリュームが定義されています。これはpostgres
サービスで使用され、PostgreSQLデータベースのデータの永続化を可能にします。
OS関連
Debian
# Debianイメージをベースとする
FROM debian:12.2-slim
# 必要なパッケージのインストール
RUN apt-get update && apt-get install -y \
bash \
curl \
git \
vim \
zip \
unzip \
build-essential \
&& rm -rf /var/lib/apt/lists/*
# 作業ディレクトリの設定
WORKDIR /app
# コンテナ起動時に実行されるコマンド
CMD ["bash"]
version: '3.8'
services:
dev:
build: .
volumes:
- .:/app
tty: true
このDocker構成は、カスタムDebianベースの開発環境をセットアップするために使用されます。
Dockerfile
はイメージのビルド指示を含み、docker-compose.yml
ファイルはそのイメージを使用してコンテナを起動するための設定を定義します。
Dockerfile 解説
このDockerfile
は、Debianベースのカスタムイメージを作成するための指示を含んでいます。
-
ベースイメージ:
FROM debian:12.2-slim
この行は、軽量版のDebian 12.2をベースイメージとして使用します。 -
パッケージのインストール:
RUN apt-get update && apt-get install -y [...]
この命令は、bash, curl, git, vim, zip/unzip, およびビルドツール(build-essential
)など、開発に必要な一連のパッケージをインストールします。 -
キャッシュのクリア:
&& rm -rf /var/lib/apt/lists/*
これは、インストールプロセスで生成されたキャッシュを削除し、イメージのサイズを削減します。 -
作業ディレクトリ:
WORKDIR /app
この命令は、イメージ内の作業ディレクトリを/app
に設定します。 -
デフォルトコマンド:
CMD ["bash"]
コンテナが起動されたときに、bashシェルを起動するように設定します。
docker-compose.yml 解説
このdocker-compose.yml
ファイルは、上述のDockerfile
を使用して開発環境コンテナをセットアップします。
-
バージョン:
version: '3.8'
は、使用するComposeファイルのバージョンを指定します。 -
サービス:
-
dev
: このセクションはdev
という名前のサービスを定義します。 -
build: .
これはDocker Composeに、現在のディレクトリにあるDockerfile
を使用してイメージをビルドするように指示します。 -
volumes: - .:/app
この命令は、ホストマシンの現在のディレクトリ(.
)をコンテナの/app
ディレクトリにマウントします。これにより、ホスト上のファイルがコンテナ内で直接編集できるようになります。 -
tty: true
この設定は、コンテナがバックグラウンドで実行されるのではなく、ターミナルに接続された状態で実行されるようにします。これにより、コンテナ内でインタラクティブな作業が可能になります。
-
Ubuntu
# Ubuntuイメージをベースにする
FROM ubuntu:23.04
# 必要なパッケージのインストール
RUN apt-get update && apt-get install -y \
bash \
curl \
git \
vim \
zip \
unzip \
build-essential \
&& rm -rf /var/lib/apt/lists/*
# 作業ディレクトリの設定
WORKDIR /app
# コンテナ起動時に実行されるコマンド
CMD ["bash"]
version: '3.8'
services:
dev:
build: .
volumes:
- .:/app
tty: true
この構成は、カスタムUbuntuベースの開発環境をセットアップするためのDocker設定を示しています。
Dockerfile
はイメージのビルド手順を含み、docker-compose.yml
ファイルはそのイメージを使用してコンテナを起動するための設定を定義します。
Dockerfile 解説
このDockerfile
は、Ubuntuベースのカスタムイメージを作成するための指示を含んでいます。
-
ベースイメージ:
FROM ubuntu:23.04
は、Ubuntu 23.04をベースイメージとして使用します。 -
パッケージのインストール:
RUN apt-get update && apt-get install -y [...]
は、bash, curl, git, vim, zip/unzip, およびビルドツール(build-essential
)など、開発に必要な一連のパッケージをインストールします。 -
キャッシュのクリア:
&& rm -rf /var/lib/apt/lists/*
でインストールプロセス中に生成されたキャッシュを削除し、イメージのサイズを小さくします。 -
作業ディレクトリ:
WORKDIR /app
でイメージ内の作業ディレクトリを/app
に設定します。 -
デフォルトコマンド:
CMD ["bash"]
はコンテナが起動した際にbashシェルを起動するように設定します。
docker-compose.yml 解説
このdocker-compose.yml
ファイルは、上記のDockerfile
を使用して開発環境コンテナをセットアップします。
-
バージョン:
version: '3.8'
は使用するComposeファイルのバージョンを指定します。 -
サービス:
-
dev
: このセクションはdev
という名前のサービスを定義します。 -
build: .
はDocker Composeに、現在のディレクトリにあるDockerfile
を使用してイメージをビルドするように指示します。 -
volumes: - .:/app
は、ホストマシンの現在のディレクトリ(.
)をコンテナの/app
ディレクトリにマウントします。これにより、ホスト上のファイルがコンテナ内で直接編集できます。 -
tty: true
はコンテナがバックグラウンドで実行されるのではなく、ターミナルに接続された状態で実行されるように設定します。これにより、コンテナ内でインタラクティブな作業が可能になります。
-
Webサーバ関連
Apache
version: '3.8'
services:
apache:
image: httpd:latest
ports:
- "80:80"
volumes:
- ./html:/usr/local/apache2/htdocs
command: ["httpd-foreground"]
このDocker構成は、httpd
(Apache HTTPサーバー)を使用してWebサーバー環境をセットアップするためのものです。
docker-compose.yml 解説
docker-compose.yml
ファイルは、Apache Webサーバーのコンテナを設定します。
-
バージョン:
version: '3.8'
は使用するComposeファイルのバージョンを指定します。 -
サービス:
-
apache
: このセクションはapache
という名前のサービスを定義します。 -
image: httpd:latest
は、Apache HTTPサーバーの最新の公式Dockerイメージを使用することを指定します。 -
ports: - "80:80"
は、ホストマシンの80ポートをコンテナの80ポートにマッピングします。これにより、ホストマシンのポート80からApacheサーバーにアクセスできます。 -
volumes: - ./html:/usr/local/apache2/htdocs
は、ホストマシンの現在のディレクトリ内のhtml
フォルダをコンテナ内のApacheのドキュメントルート(/usr/local/apache2/htdocs
)にマウントします。これにより、ホストマシン上のhtml
フォルダ内のファイルがWebサーバーを通じて提供されます。 -
command: ["httpd-foreground"]
は、コンテナが起動するときに実行されるコマンドを指定します。このコマンドはApacheをフォアグラウンドで実行し、コンテナが動作し続けるようにします。
-
Nginx
version: '3.8'
services:
nginx:
image: nginx:latest
ports:
- "80:80"
volumes:
- ./html:/usr/share/nginx/html
command: ["nginx", "-g", "daemon off;"]
このDocker構成は、nginx
(Nginx HTTPサーバー)を使用してWebサーバー環境をセットアップするためのものです。
docker-compose.yml 解説
docker-compose.yml
ファイルは、Nginx Webサーバーのコンテナを設定します。
-
バージョン:
version: '3.8'
は使用するComposeファイルのバージョンを指定します。 -
サービス:
-
nginx
: このセクションはnginx
という名前のサービスを定義します。 -
image: nginx:latest
は、Nginxの最新の公式Dockerイメージを使用することを指定します。 -
ports: - "80:80"
は、ホストマシンの80ポートをコンテナの80ポートにマッピングします。これにより、ホストマシンのポート80からNginxサーバーにアクセスできます。 -
volumes: - ./html:/usr/share/nginx/html
は、ホストマシンの現在のディレクトリ内のhtml
フォルダをコンテナ内のNginxのドキュメントルート(/usr/share/nginx/html
)にマウントします。これにより、ホストマシン上のhtml
フォルダ内のファイルがWebサーバーを通じて提供されます。 -
command: ["nginx", "-g", "daemon off;"]
は、コンテナが起動するときに実行されるコマンドを指定します。このコマンドはNginxをフォアグラウンドで実行し、コンテナが動作し続けるようにします。
-
フレームワーク
FastAPI
# Pythonイメージをベースにする
FROM python:3.10
# 必要なツールのインストール
RUN apt-get update && apt-get install -y \
bash \
git \
vim \
&& rm -rf /var/lib/apt/lists/*
# 作業ディレクトリの設定
WORKDIR /app
# FastAPIとUvicorn(ASGIサーバー)のインストール
RUN pip install fastapi uvicorn
# ホストマシンからのファイルコピー用ディレクトリ
VOLUME [ "/app" ]
# コンテナ起動時に実行されるコマンド
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--reload"]
version: '3.8'
services:
python-dev:
build: .
volumes:
- .:/app # 現在のディレクトリをコンテナの/appにマウント
tty: true
この構成は、Pythonをベースにした開発環境をセットアップし、FastAPIを使用してWebアプリケーションを開発・実行するためのものです。
Dockerfile 解説
このDockerfile
は、FastAPIを使用するPython開発環境のカスタムイメージを作成するための指示を含んでいます。
-
ベースイメージ:
FROM python:3.10
は、Python 3.10をベースイメージとして使用します。 -
パッケージのインストール:
RUN apt-get update && apt-get install -y [...]
は、bash, git, vimなどの基本的な開発ツールをインストールします。 -
キャッシュのクリア:
&& rm -rf /var/lib/apt/lists/*
は、インストールプロセス中に生成されたキャッシュを削除し、イメージのサイズを小さくします。 -
作業ディレクトリ:
WORKDIR /app
はイメージ内の作業ディレクトリを/app
に設定します。 -
Pythonパッケージのインストール:
RUN pip install fastapi uvicorn
は、FastAPIとUvicorn(ASGIサーバー)をインストールします。 -
ボリューム:
VOLUME [ "/app" ]
は、ホストマシンからのファイルをコンテナ内の/app
ディレクトリにコピーするためのボリュームを設定します。 -
デフォルトコマンド:
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--reload"]
はコンテナが起動した際に、Uvicornを使用してFastAPIアプリケーションを実行するように設定します。--reload
フラグは開発中のコードの変更が自動的に反映されるようにします。
docker-compose.yml 解説
このdocker-compose.yml
ファイルは、上記のDockerfile
を使用してPython開発環境のコンテナをセットアップします。
-
バージョン:
version: '3.8'
は使用するComposeファイルのバージョンを指定します。 -
サービス:
-
python-dev
: このセクションはpython-dev
という名前のサービスを定義します。 -
build: .
はDocker Composeに、現在のディレクトリにあるDockerfile
を使用してイメージをビルドするように指示します。 -
volumes: - .:/app
は、ホストマシンの現在のディレクトリ(.
)をコンテナの/app
ディレクトリにマウントします。これにより、ホスト上のファイルがコンテナ内で直接編集できます。 -
tty: true
はコンテナがバックグラウンドで実行されるのではなく、ターミナルに接続された状態で実行されるように設定します。これにより、コンテナ内でインタラクティブな作業が可能になります。
-
Flask
# Pythonイメージをベースにする
FROM python:3.10
# 必要なツールのインストール
RUN apt-get update && apt-get install -y \
bash \
git \
vim \
&& rm -rf /var/lib/apt/lists/*
# 作業ディレクトリの設定
WORKDIR /app
# Flaskのインストール
RUN pip install flask
# ホストマシンからのファイルコピー用ディレクトリ
VOLUME [ "/app" ]
# コンテナ起動時に実行されるコマンド
# Flaskアプリケーションのエントリーポイントを指定
CMD ["flask", "run", "--host=0.0.0.0"]
version: '3.8'
services:
flask-dev:
build: .
ports:
- "5000:5000" # Flaskのデフォルトポートをホストとマッピング
volumes:
- .:/app # 現在のディレクトリをコンテナの/appにマウント
tty: true
この構成は、PythonをベースにしたFlask開発環境をセットアップするためのものです。
Dockerfile 解説
このDockerfile
は、Flaskを使用するPython開発環境のカスタムイメージを作成するための指示を含んでいます。
-
ベースイメージ:
FROM python:3.10
は、Python 3.10をベースイメージとして使用します。 -
パッケージのインストール:
RUN apt-get update && apt-get install -y [...]
は、bash, git, vimなどの基本的な開発ツールをインストールします。 -
キャッシュのクリア:
&& rm -rf /var/lib/apt/lists/*
は、インストールプロセス中に生成されたキャッシュを削除し、イメージのサイズを小さくします。 -
作業ディレクトリ:
WORKDIR /app
はイメージ内の作業ディレクトリを/app
に設定します。 -
Pythonパッケージのインストール:
RUN pip install flask
は、WebフレームワークであるFlaskをインストールします。 -
ボリューム:
VOLUME [ "/app" ]
は、ホストマシンからのファイルをコンテナ内の/app
ディレクトリにコピーするためのボリュームを設定します。 -
デフォルトコマンド:
CMD ["flask", "run", "--host=0.0.0.0"]
はコンテナが起動した際に、Flaskアプリケーションを実行するように設定します。--host=0.0.0.0
はアプリケーションをコンテナ外からアクセス可能にします。
docker-compose.yml 解説
このdocker-compose.yml
ファイルは、上記のDockerfile
を使用してFlask開発環境のコンテナをセットアップします。
-
バージョン:
version: '3.8'
は使用するComposeファイルのバージョンを指定します。 -
サービス:
-
flask-dev
: このセクションはflask-dev
という名前のサービスを定義します。 -
build: .
はDocker Composeに、現在のディレクトリにあるDockerfile
を使用してイメージをビルドするように指示します。 -
ports: - "5000:5000"
は、ホストマシンの5000ポートをコンテナの5000ポートにマッピングします。これにより、ホストからFlaskアプリケーションにアクセスできます。 -
volumes: - .:/app
は、ホストマシンの現在のディレクトリ(.
)をコンテナの/app
ディレクトリにマウントします。これにより、ホスト上のファイルがコンテナ内で直接編集できます。 -
tty: true
はコンテナがバックグラウンドで実行されるのではなく、ターミナルに接続された状態で実行されるように設定します。これにより、コンテナ内でインタラクティブな作業が可能になります。
-
GraphQL
FROM node:20
WORKDIR /app
COPY package.json /app/
RUN npm install
COPY . /app/
CMD ["npm", "start"]
version: '3.8'
services:
graphql-server:
build: .
ports:
- "4000:4000" # ホストマシンのポートをコンテナのポートにマッピング
volumes:
- .:/app # ホストとコンテナ間でフォルダを共有
tty: true
この構成は、Node.jsをベースにしたGraphQLサーバーの開発環境をセットアップするためのものです。
Dockerfile 解説
このDockerfile
は、Node.jsベースのアプリケーションのカスタムイメージを作成するための指示を含んでいます。
-
ベースイメージ:
FROM node:20
は、Node.jsのバージョン20をベースイメージとして使用します。 -
作業ディレクトリ:
WORKDIR /app
はイメージ内の作業ディレクトリを/app
に設定します。 -
ファイルのコピー:
-
COPY package.json /app/
は、ホストマシンのpackage.json
ファイルをコンテナ内の/app
ディレクトリにコピーします。 -
COPY . /app/
はホストマシンの現在のディレクトリのすべてのファイルをコンテナの/app
ディレクトリにコピーします。
-
-
依存関係のインストール:
RUN npm install
は、package.json
で指定された依存関係をインストールします。 -
デフォルトコマンド:
CMD ["npm", "start"]
はコンテナが起動した際に、npm start
コマンドを実行するように設定します。
docker-compose.yml 解説
このdocker-compose.yml
ファイルは、上記のDockerfile
を使用してGraphQLサーバーのコンテナをセットアップします。
-
バージョン:
version: '3.8'
は使用するComposeファイルのバージョンを指定します。 -
サービス:
-
graphql-server
: このセクションはgraphql-server
という名前のサービスを定義します。 -
build: .
はDocker Composeに、現在のディレクトリにあるDockerfile
を使用してイメージをビルドするように指示します。 -
ports: - "4000:4000"
は、ホストマシンの4000ポートをコンテナの4000ポートにマッピングします。これにより、ホストからGraphQLサーバーにアクセスできます。 -
volumes: - .:/app
は、ホストマシンの現在のディレクトリ(.
)をコンテナの/app
ディレクトリにマウントします。これにより、ホスト上のファイルがコンテナ内で直接編集できます。 -
tty: true
はコンテナがバックグラウンドで実行されるのではなく、ターミナルに接続された状態で実行されるように設定します。これにより、コンテナ内でインタラクティブな作業が可能になります。
-
Spring(Maven)
# OpenJDKを含む基本的なJavaイメージをベースにする
FROM openjdk:11
# Mavenをインストール
RUN apt-get update && apt-get install -y \
maven \
bash \
curl \
git \
vim \
&& rm -rf /var/lib/apt/lists/*
# 作業ディレクトリの設定
WORKDIR /app
# コンテナ起動時に実行されるコマンド
CMD ["bash"]
version: '3.8'
services:
spring-dev:
build: .
ports:
- "8080:8080"
volumes:
- .:/app
tty: true
このDocker構成は、Java(特にSpring Frameworkを想定)の開発環境をセットアップするためのものです。
Dockerfile 解説
このDockerfile
は、Javaベースの開発環境のカスタムイメージを作成するための指示を含んでいます。
-
ベースイメージ:
FROM openjdk:11
は、OpenJDK 11を含む基本的なJavaイメージをベースとして使用します。 -
パッケージのインストール:
RUN apt-get update && apt-get install -y [...]
は、Maven(Javaのビルドツール)、bash、curl、git、vimなどの開発に必要なツールをインストールします。 -
キャッシュのクリア:
&& rm -rf /var/lib/apt/lists/*
は、インストールプロセス中に生成されたキャッシュを削除し、イメージのサイズを小さくします。 -
作業ディレクトリ:
WORKDIR /app
はイメージ内の作業ディレクトリを/app
に設定します。 -
デフォルトコマンド:
CMD ["bash"]
はコンテナが起動した際にbashシェルを起動するように設定します。
docker-compose.yml 解説
このdocker-compose.yml
ファイルは、上記のDockerfile
を使用してJava開発環境のコンテナをセットアップします。
-
バージョン:
version: '3.8'
は使用するComposeファイルのバージョンを指定します。 -
サービス:
-
spring-dev
: このセクションはspring-dev
という名前のサービスを定義します。 -
build: .
はDocker Composeに、現在のディレクトリにあるDockerfile
を使用してイメージをビルドするように指示します。 -
ports: - "8080:8080"
は、ホストマシンの8080ポートをコンテナの8080ポートにマッピングします。これにより、ホストからSpringアプリケーションにアクセスできます。 -
volumes: - .:/app
は、ホストマシンの現在のディレクトリ(.
)をコンテナの/app
ディレクトリにマウントします。これにより、ホスト上のファイルがコンテナ内で直接編集できます。 -
tty: true
はコンテナがバックグラウンドで実行されるのではなく、ターミナルに接続された状態で実行されるように設定します。これにより、コンテナ内でインタラクティブな作業が可能になります。
-
プログラミング言語関連
Go
# Go言語のイメージをベースにする
FROM golang:1.16
# 必要なツールのインストール
RUN apt-get update && apt-get install -y \
bash \
git \
vim \
&& rm -rf /var/lib/apt/lists/*
# 作業ディレクトリの設定
WORKDIR /app
# ホストマシンからのファイルコピー用ディレクトリ
VOLUME [ "/app" ]
# コンテナ起動時に実行されるコマンド
CMD ["bash"]
version: '3.8'
services:
go-app:
build: .
volumes:
- .:/app # 現在のディレクトリをコンテナの/appにマウント
tty: true
このDocker構成は、Go言語(Golang)の開発環境をセットアップするためのものです。
Dockerfile 解説
このDockerfile
は、Go言語ベースの開発環境のカスタムイメージを作成するための指示を含んでいます。
-
ベースイメージ:
FROM golang:1.16
は、Go言語のバージョン1.16を含む基本的なイメージをベースとして使用します。 -
パッケージのインストール:
RUN apt-get update && apt-get install -y [...]
は、bash、git、vimなどの開発に必要な基本的なツールをインストールします。 -
キャッシュのクリア:
&& rm -rf /var/lib/apt/lists/*
は、インストールプロセス中に生成されたキャッシュを削除し、イメージのサイズを小さくします。 -
作業ディレクトリ:
WORKDIR /app
はイメージ内の作業ディレクトリを/app
に設定します。 -
ボリューム:
VOLUME [ "/app" ]
は、ホストマシンからのファイルをコンテナ内の/app
ディレクトリにコピーするためのボリュームを設定します。 -
デフォルトコマンド:
CMD ["bash"]
はコンテナが起動した際にbashシェルを起動するように設定します。
docker-compose.yml 解説
このdocker-compose.yml
ファイルは、上記のDockerfile
を使用してGo言語開発環境のコンテナをセットアップします。
-
バージョン:
version: '3.8'
は使用するComposeファイルのバージョンを指定します。 -
サービス:
-
go-app
: このセクションはgo-app
という名前のサービスを定義します。 -
build: .
はDocker Composeに、現在のディレクトリにあるDockerfile
を使用してイメージをビルドするように指示します。 -
volumes: - .:/app
は、ホストマシンの現在のディレクトリ(.
)をコンテナの/app
ディレクトリにマウントします。これにより、ホスト上のファイルがコンテナ内で直接編集できます。 -
tty: true
はコンテナがバックグラウンドで実行されるのではなく、ターミナルに接続された状態で実行されるように設定します。これにより、コンテナ内でインタラクティブな作業が可能になります。
-
Java
# OpenJDKを含む基本的なJavaイメージをベースにする
FROM openjdk:11
# 必要なツールのインストール
RUN apt-get update && apt-get install -y \
bash \
curl \
git \
vim \
&& rm -rf /var/lib/apt/lists/*
# 作業ディレクトリの設定
WORKDIR /app
# コンテナ起動時に実行されるコマンド
CMD ["bash"]
version: '3.8'
services:
java-dev:
build: .
volumes:
- .:/app
tty: true
このDocker構成は、Javaを使用した開発環境をセットアップするためのものです。
Dockerfile 解説
このDockerfile
は、Javaベースの開発環境のカスタムイメージを作成するための指示を含んでいます。
-
ベースイメージ:
FROM openjdk:11
は、OpenJDK 11を含む基本的なJavaイメージをベースとして使用します。これにより、Javaアプリケーションをコンパイルし実行するための環境が提供されます。 -
パッケージのインストール:
RUN apt-get update && apt-get install -y [...]
は、bash、curl、git、vimなど、基本的な開発ツールをインストールします。これらはコードの編集やバージョン管理に便利です。 -
キャッシュのクリア:
&& rm -rf /var/lib/apt/lists/*
は、インストールプロセス中に生成されたキャッシュを削除し、イメージのサイズを小さくします。 -
作業ディレクトリ:
WORKDIR /app
はイメージ内の作業ディレクトリを/app
に設定します。これはJavaアプリケーションのソースコードやビルドファイルを格納する場所となります。 -
デフォルトコマンド:
CMD ["bash"]
はコンテナが起動した際にbashシェルを起動するように設定します。これにより、コンテナ内でインタラクティブな作業が可能になります。
docker-compose.yml 解説
このdocker-compose.yml
ファイルは、上記のDockerfile
を使用してJava開発環境のコンテナをセットアップします。
-
バージョン:
version: '3.8'
は使用するComposeファイルのバージョンを指定します。 -
サービス:
-
java-dev
: このセクションはjava-dev
という名前のサービスを定義します。 -
build: .
はDocker Composeに、現在のディレクトリにあるDockerfile
を使用してイメージをビルドするように指示します。 -
volumes: - .:/app
は、ホストマシンの現在のディレクトリ(.
)をコンテナの/app
ディレクトリにマウントします。これにより、ホスト上のファイルがコンテナ内で直接編集できます。 -
tty: true
はコンテナがバックグラウンドで実行されるのではなく、ターミナルに接続された状態で実行されるように設定します。これにより、コンテナ内でインタラクティブな作業が可能になります。
-
Kotlin
# 基本イメージとしてOpenJDKを使用
FROM openjdk:11
# Kotlinのバージョンを指定
ENV KOTLIN_VERSION=1.6.10
# Kotlinコンパイラのダウンロードとインストール
RUN curl -sSL "https://github.com/JetBrains/kotlin/releases/download/v$KOTLIN_VERSION/kotlin-compiler-$KOTLIN_VERSION.zip" -o kotlin-compiler.zip \
&& unzip kotlin-compiler.zip -d /usr/share \
&& rm kotlin-compiler.zip
# 環境変数の設定
ENV PATH=$PATH:/usr/share/kotlinc/bin
# 作業ディレクトリの設定
WORKDIR /app
# ホストマシンとのフォルダ共有のためにボリュームを指定
VOLUME ["/app"]
# Bashの起動
CMD ["bash"]
version: '3.8'
services:
kotlin-dev:
build: .
volumes:
- .:/app
tty: true
このDocker構成は、Kotlin言語の開発環境をセットアップするためのものです。
Dockerfile 解説
このDockerfile
は、Kotlinベースの開発環境のカスタムイメージを作成するための指示を含んでいます。
-
ベースイメージ:
FROM openjdk:11
は、OpenJDK 11を含む基本的なJavaイメージをベースとして使用します。KotlinはJVM(Java Virtual Machine)上で動作するため、Javaの実行環境が必要です。 -
環境変数:
ENV KOTLIN_VERSION=1.6.10
で使用するKotlinのバージョンを指定します。 -
Kotlinコンパイラのインストール:
-
RUN curl -sSL [...] -o kotlin-compiler.zip
は、指定されたKotlinバージョンのコンパイラをダウンロードします。 -
unzip kotlin-compiler.zip -d /usr/share
でダウンロードしたzipファイルを解凍し、/usr/share
にインストールします。 -
rm kotlin-compiler.zip
でzipファイルを削除し、容量を節約します。
-
-
環境変数の設定:
ENV PATH=$PATH:/usr/share/kotlinc/bin
でKotlinコンパイラのパスを環境変数PATH
に追加します。 -
作業ディレクトリ:
WORKDIR /app
はイメージ内の作業ディレクトリを/app
に設定します。 -
ボリューム:
VOLUME ["/app"]
は、ホストマシンからのファイルをコンテナ内の/app
ディレクトリにコピーするためのボリュームを設定します。 -
デフォルトコマンド:
CMD ["bash"]
はコンテナが起動した際にbashシェルを起動するように設定します。
docker-compose.yml 解説
このdocker-compose.yml
ファイルは、上記のDockerfile
を使用してKotlin開発環境のコンテナをセットアップします。
-
バージョン:
version: '3.8'
は使用するComposeファイルのバージョンを指定します。 -
サービス:
-
kotlin-dev
: このセクションはkotlin-dev
という名前のサービスを定義します。 -
build: .
はDocker Composeに、現在のディレクトリにあるDockerfile
を使用してイメージをビルドするように指示します。 -
volumes: - .:/app
は、ホストマシンの現在のディレクトリ(.
)をコンテナの/app
ディレクトリにマウントします。これにより、ホスト上のファイルがコンテナ内で直接編集できます。 -
tty: true
はコンテナがバックグラウンドで実行されるのではなく、ターミナルに接続された状態で実行されるように設定します。これにより、コンテナ内でインタラクティブな作業が可能になります。
-
Mojo
# Ubuntuイメージをベースにする
FROM ubuntu:23.04
# 必要なパッケージのインストール
RUN apt-get update && apt-get install -y \
bash \
git \
vim \
curl \
&& rm -rf /var/lib/apt/lists/*
# Mojo言語のインストール
RUN curl https://get.modular.com | sh - && \
modular auth mut_~ && \
modular install mojo
# mut~はhttps://developer.modular.com/downloadで確認します。
# 作業ディレクトリの設定
WORKDIR /app
# コンテナ起動時に実行されるコマンド
CMD ["bash"]
version: '3.8'
services:
mojo-dev:
build: .
volumes:
- .:/app # 現在のディレクトリをコンテナの/appにマウント
tty: true
このDocker構成は、UbuntuベースでMojo言語の開発環境をセットアップするためのものです。
Dockerfile 解説
このDockerfile
は、UbuntuベースのMojo言語開発環境のカスタムイメージを作成するための指示を含んでいます。
-
ベースイメージ:
FROM ubuntu:23.04
は、Ubuntu 23.04をベースイメージとして使用します。 -
パッケージのインストール:
RUN apt-get update && apt-get install -y [...]
は、bash、git、vim、curlなどの基本的な開発ツールをインストールします。 -
キャッシュのクリア:
&& rm -rf /var/lib/apt/lists/*
でインストールプロセス中に生成されたキャッシュを削除し、イメージのサイズを小さくします。 -
Mojo言語のインストール:
-
RUN curl https://get.modular.com | sh -
はModularをダウンロードし、インストールスクリプトを実行します。 -
modular auth mut_~
ではModularの認証を行います。mut_~
はModularのダウンロードページから入手可能なトークンです。 -
modular install mojo
でMojo言語をインストールします。
-
-
作業ディレクトリ:
WORKDIR /app
はイメージ内の作業ディレクトリを/app
に設定します。 -
デフォルトコマンド:
CMD ["bash"]
はコンテナが起動した際にbashシェルを起動するように設定します。
docker-compose.yml 解説
このdocker-compose.yml
ファイルは、上記のDockerfile
を使用してMojo言語開発環境のコンテナをセットアップします。
-
バージョン:
version: '3.8'
は使用するComposeファイルのバージョンを指定します。 -
サービス:
-
mojo-dev
: このセクションはmojo-dev
という名前のサービスを定義します。 -
build: .
はDocker Composeに、現在のディレクトリにあるDockerfile
を使用してイメージをビルドするように指示します。 -
volumes: - .:/app
は、ホストマシンの現在のディレクトリ(.
)をコンテナの/app
ディレクトリにマウントします。これにより、ホスト上のファイルがコンテナ内で直接編集できます。 -
tty: true
はコンテナがバックグラウンドで実行されるのではなく、ターミナルに接続された状態で実行されるように設定します。これにより、コンテナ内でインタラクティブな作業が可能になります。
-
Node.js
# Node.jsバージョン20のイメージをベースにする
FROM node:20
# 必要なツールのインストール
RUN apt-get update && apt-get install -y \
bash \
git \
vim \
&& rm -rf /var/lib/apt/lists/*
# 作業ディレクトリの設定
WORKDIR /app
# ホストマシンからのファイルコピー用ディレクトリ
VOLUME [ "/app" ]
# コンテナ起動時に実行されるコマンド
CMD ["bash"]
version: '3.8'
services:
nodejs-dev:
build: .
volumes:
- .:/app # 現在のディレクトリをコンテナの/appにマウント
tty: true
このDocker構成は、Node.jsの開発環境をセットアップするためのものです。
Dockerfile 解説
このDockerfile
は、Node.jsベースの開発環境のカスタムイメージを作成するための指示を含んでいます。
-
ベースイメージ:
FROM node:20
は、Node.jsのバージョン20を含む基本的なイメージをベースとして使用します。このイメージにはNode.jsとnpmがプリインストールされており、Node.jsアプリケーションの開発に必要な環境が提供されます。 -
パッケージのインストール:
RUN apt-get update && apt-get install -y [...]
は、bash、git、vimなどの基本的な開発ツールをインストールします。これらはコードの編集やバージョン管理に便利です。 -
キャッシュのクリア:
&& rm -rf /var/lib/apt/lists/*
でインストールプロセス中に生成されたキャッシュを削除し、イメージのサイズを小さくします。 -
作業ディレクトリ:
WORKDIR /app
はイメージ内の作業ディレクトリを/app
に設定します。これはNode.jsアプリケーションのソースコードやビルドファイルを格納する場所となります。 -
ボリューム:
VOLUME [ "/app" ]
は、ホストマシンからのファイルをコンテナ内の/app
ディレクトリにコピーするためのボリュームを設定します。 -
デフォルトコマンド:
CMD ["bash"]
はコンテナが起動した際にbashシェルを起動するように設定します。
docker-compose.yml 解説
このdocker-compose.yml
ファイルは、上記のDockerfile
を使用してNode.js開発環境のコンテナをセットアップします。
-
バージョン:
version: '3.8'
は使用するComposeファイルのバージョンを指定します。 -
サービス:
-
nodejs-dev
: このセクションはnodejs-dev
という名前のサービスを定義します。 -
build: .
はDocker Composeに、現在のディレクトリにあるDockerfile
を使用してイメージをビルドするように指示します。 -
volumes: - .:/app
は、ホストマシンの現在のディレクトリ(.
)をコンテナの/app
ディレクトリにマウントします。これにより、ホスト上のファイルがコンテナ内で直接編集できます。 -
tty: true
はコンテナがバックグラウンドで実行されるのではなく、ターミナルに接続された状態で実行されるように設定します。これにより、コンテナ内でインタラクティブな作業が可能になります。
-
PHP
# PHPイメージをベースにする
FROM php:8.0-apache
# 必要なパッケージのインストール
RUN apt-get update && apt-get install -y \
git \
vim \
&& rm -rf /var/lib/apt/lists/*
# Composerのインストール
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
# 作業ディレクトリの設定
WORKDIR /var/www/html
# Apacheの設定
COPY .docker/apache.conf /etc/apache2/sites-available/000-default.conf
# コンテナ起動時に実行されるコマンド
CMD ["apache2-foreground"]
version: '3.8'
services:
php-app:
build: .
volumes:
- .:/var/www/html # 現在のディレクトリをコンテナの/var/www/htmlにマウント
ports:
- "80:80" # コンテナの80ポートをホストの80ポートにマッピング
tty: true
このDocker構成は、PHPとApacheを使用したWebアプリケーションの開発環境をセットアップするためのものです。
Dockerfile 解説
このDockerfile
は、PHPとApacheをベースにした開発環境のカスタムイメージを作成するための指示を含んでいます。
-
ベースイメージ:
FROM php:8.0-apache
は、PHP 8.0を含むApacheサーバーをベースイメージとして使用します。これにより、PHPアプリケーションの実行環境が提供されます。 -
パッケージのインストール:
RUN apt-get update && apt-get install -y [...]
は、git、vimなどの開発ツールをインストールします。 -
キャッシュのクリア:
&& rm -rf /var/lib/apt/lists/*
でインストールプロセス中に生成されたキャッシュを削除し、イメージのサイズを小さくします。 -
Composerのインストール:
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
は、最新のComposer(PHPの依存関係管理ツール)を別のコンテナからコピーし、インストールします。 -
作業ディレクトリ:
WORKDIR /var/www/html
は、Apacheサーバーのデフォルトのドキュメントルートを作業ディレクトリとして設定します。 -
Apache設定のコピー:
COPY .docker/apache.conf /etc/apache2/sites-available/000-default.conf
はカスタムApache設定をコンテナにコピーします。 -
デフォルトコマンド:
CMD ["apache2-foreground"]
はコンテナが起動した際にApacheをフォアグラウンドで実行するように設定します。
docker-compose.yml 解説
このdocker-compose.yml
ファイルは、上記のDockerfile
を使用してPHPアプリケーションのコンテナをセットアップします。
-
バージョン:
version: '3.8'
は使用するComposeファイルのバージョンを指定します。 -
サービス:
-
php-app
: このセクションはphp-app
という名前のサービスを定義します。 -
build: .
はDocker Composeに、現在のディレクトリにあるDockerfile
を使用してイメージをビルドするように指示します。 -
volumes: - .:/var/www/html
は、ホストマシンの現在のディレクトリ(.
)をコンテナの/var/www/html
ディレクトリにマウントします。これにより、ホスト上のファイルがコンテナ内で直接編集できます。 -
ports: - "80:80"
は、ホストマシンの80ポートをコンテナの80ポートにマッピングします。これにより、ホストのWebブラウザからコンテナ内のPHPアプリケーションにアクセスできます。 -
tty: true
はコンテナがバックグラウンドで実行されるのではなく、ターミナルに接続された状態で実行されるように設定します。
-
Python
# Pythonイメージをベースにする
FROM python:3.10
# 必要なツールのインストール
RUN apt-get update && apt-get install -y \
bash \
git \
vim \
&& rm -rf /var/lib/apt/lists/*
# 作業ディレクトリの設定
WORKDIR /app
# 依存関係ファイルのコピー(存在する場合)
COPY requirements.txt /app/
# Python依存関係のインストール
RUN pip install --no-cache-dir -r requirements.txt
# コンテナ起動時に実行されるコマンド
CMD ["bash"]
version: '3.8'
services:
python-dev:
build: .
volumes:
- .:/app # 現在のディレクトリをコンテナの/appにマウント
tty: true
このDocker構成は、Python 3.10をベースにした開発環境をセットアップするためのものです。
Dockerfile 解説
このDockerfile
は、Pythonベースの開発環境のカスタムイメージを作成するための指示を含んでいます。
-
ベースイメージ:
FROM python:3.10
は、Python 3.10をベースイメージとして使用します。これにはPythonとpipがプリインストールされており、Pythonアプリケーションの開発に必要な環境が提供されます。 -
パッケージのインストール:
RUN apt-get update && apt-get install -y [...]
は、bash、git、vimなどの基本的な開発ツールをインストールします。これらはコードの編集やバージョン管理に便利です。 -
キャッシュのクリア:
&& rm -rf /var/lib/apt/lists/*
でインストールプロセス中に生成されたキャッシュを削除し、イメージのサイズを小さくします。 -
作業ディレクトリ:
WORKDIR /app
はイメージ内の作業ディレクトリを/app
に設定します。これはPythonアプリケーションのソースコードやビルドファイルを格納する場所となります。 -
依存関係ファイルのコピー:
COPY requirements.txt /app/
はホストマシンのrequirements.txt
ファイルをコンテナ内の/app
ディレクトリにコピーします。このファイルにはPythonの依存関係が記載されています。 -
Python依存関係のインストール:
RUN pip install --no-cache-dir -r requirements.txt
はrequirements.txt
で指定された依存関係をインストールします。 -
デフォルトコマンド:
CMD ["bash"]
はコンテナが起動した際にbashシェルを起動するように設定します。
docker-compose.yml 解説
このdocker-compose.yml
ファイルは、上記のDockerfile
を使用してPython開発環境のコンテナをセットアップします。
-
バージョン:
version: '3.8'
は使用するComposeファイルのバージョンを指定します。 -
サービス:
-
python-dev
: このセクションはpython-dev
という名前のサービスを定義します。 -
build: .
はDocker Composeに、現在のディレクトリにあるDockerfile
を使用してイメージをビルドするように指示します。 -
volumes: - .:/app
は、ホストマシンの現在のディレクトリ(.
)をコンテナの/app
ディレクトリにマウントします。これにより、ホスト上のファイルがコンテナ内で直接編集できます。 -
tty: true
はコンテナがバックグラウンドで実行されるのではなく、ターミナルに接続された状態で実行されるように設定します。これにより、コンテナ内でインタラクティブな作業が可能になります。
-
Rust
# Rustの公式イメージを使用
FROM rust:latest
# 作業ディレクトリの設定
WORKDIR /usr/src/myapp
# ホストマシンとのフォルダ共有のためにボリュームを指定
VOLUME ["/usr/src/myapp"]
# Bashの起動
CMD ["bash"]
version: '3.8'
services:
rust-dev:
build: .
volumes:
- .:/usr/src/myapp
tty: true
このDocker構成は、Rustプログラミング言語の開発環境をセットアップするためのものです。
Dockerfile 解説
このDockerfile
は、Rust言語ベースの開発環境のカスタムイメージを作成するための指示を含んでいます。
-
ベースイメージ:
FROM rust:latest
は、Rustの最新公式イメージをベースとして使用します。このイメージにはRust言語とCargo(Rustのパッケージマネージャーとビルドツール)がプリインストールされています。 -
作業ディレクトリ:
WORKDIR /usr/src/myapp
はイメージ内の作業ディレクトリを/usr/src/myapp
に設定します。これはRustプロジェクトのソースコードやビルドファイルを格納する場所となります。 -
ボリューム:
VOLUME ["/usr/src/myapp"]
は、ホストマシンからのファイルをコンテナ内の/usr/src/myapp
ディレクトリにコピーするためのボリュームを設定します。 -
デフォルトコマンド:
CMD ["bash"]
はコンテナが起動した際にbashシェルを起動するように設定します。これにより、コンテナ内でインタラクティブな作業が可能になります。
docker-compose.yml 解説
このdocker-compose.yml
ファイルは、上記のDockerfile
を使用してRust開発環境のコンテナをセットアップします。
-
バージョン:
version: '3.8'
は使用するComposeファイルのバージョンを指定します。 -
サービス:
-
rust-dev
: このセクションはrust-dev
という名前のサービスを定義します。 -
build: .
はDocker Composeに、現在のディレクトリにあるDockerfile
を使用してイメージをビルドするように指示します。 -
volumes: - .:/usr/src/myapp
は、ホストマシンの現在のディレクトリ(.
)をコンテナの/usr/src/myapp
ディレクトリにマウントします。これにより、ホスト上のファイルがコンテナ内で直接編集できます。 -
tty: true
はコンテナがバックグラウンドで実行されるのではなく、ターミナルに接続された状態で実行されるように設定します。これにより、コンテナ内でインタラクティブな作業が可能になります。
-
Swift
version: '3.8'
services:
swift:
image: swift:latest
volumes:
- .:/app
working_dir: /app
tty: true
command: /bin/bash
このDocker構成は、Swift言語の開発環境をセットアップするためのものです。
docker-compose.yml 解説
このdocker-compose.yml
ファイルは、Swift開発環境のコンテナを設定します。
-
バージョン:
version: '3.8'
は使用するComposeファイルのバージョンを指定します。 -
サービス:
-
swift
: このセクションはswift
という名前のサービスを定義します。 -
image: swift:latest
は、Swiftの最新の公式Dockerイメージを使用することを指定します。これにはSwift言語と必要なツールがプリインストールされています。 -
volumes: - .:/app
は、ホストマシンの現在のディレクトリ(.
)をコンテナの/app
ディレクトリにマウントします。これにより、ホスト上のファイルがコンテナ内で直接編集できます。 -
working_dir: /app
は、コンテナ内での作業ディレクトリを/app
に設定します。 -
tty: true
はコンテナがバックグラウンドで実行されるのではなく、ターミナルに接続された状態で実行されるように設定します。これにより、コンテナ内でインタラクティブな作業が可能になります。 -
command: /bin/bash
は、コンテナが起動するときに実行されるコマンドを指定します。この設定はbashシェルを起動し、コンテナ内での作業を容易にします。
-
フロントエンド関連
Angular
# Node.jsイメージをベースにする
FROM node:20
# 必要なツールのインストール
RUN apt-get update && apt-get install -y \
bash \
git \
vim \
&& rm -rf /var/lib/apt/lists/*
# 作業ディレクトリの設定
WORKDIR /app
# パッケージ依存関係のコピー
COPY package.json /app/
COPY package-lock.json /app/
# 依存関係のインストール
RUN npm install
# アプリケーションのファイルをコピー
COPY . /app/
# Angularアプリケーションを起動するコマンド
CMD ["npm", "start"]
version: '3.8'
services:
angular-app:
build: .
ports:
- "4200:4200" # Angularアプリのデフォルトポートをホストとマッピング
volumes:
- .:/app # 現在のディレクトリをコンテナの/appにマウント
tty: true
このDocker構成は、Node.jsとAngularを使用したWebアプリケーション開発環境をセットアップするためのものです。
Dockerfile 解説
このDockerfile
は、Angularアプリケーションの開発環境のカスタムイメージを作成するための指示を含んでいます。
-
ベースイメージ:
FROM node:20
は、Node.jsのバージョン20を含む基本的なイメージをベースとして使用します。Node.jsはAngularアプリケーションの開発に必要な環境を提供します。 -
パッケージのインストール:
RUN apt-get update && apt-get install -y [...]
は、bash、git、vimなどの開発ツールをインストールします。これらはコードの編集やバージョン管理に便利です。 -
キャッシュのクリア:
&& rm -rf /var/lib/apt/lists/*
でインストールプロセス中に生成されたキャッシュを削除し、イメージのサイズを小さくします。 -
作業ディレクトリ:
WORKDIR /app
はイメージ内の作業ディレクトリを/app
に設定します。これはアプリケーションのソースコードやビルドファイルを格納する場所となります。 -
依存関係ファイルのコピー:
COPY package.json /app/
とCOPY package-lock.json /app/
はホストマシンの依存関係ファイルをコンテナ内の/app
ディレクトリにコピーします。 -
依存関係のインストール:
RUN npm install
はpackage.json
とpackage-lock.json
で指定された依存関係をインストールします。 -
アプリケーションのファイルのコピー:
COPY . /app/
はホストマシンの現在のディレクトリのすべてのファイルをコンテナの/app
ディレクトリにコピーします。 -
デフォルトコマンド:
CMD ["npm", "start"]
はコンテナが起動した際にAngularアプリケーションを起動するコマンドを実行するように設定します。
docker-compose.yml 解説
このdocker-compose.yml
ファイルは、上記のDockerfile
を使用してAngularアプリケーションのコンテナをセットアップします。
-
バージョン:
version: '3.8'
は使用するComposeファイルのバージョンを指定します。 -
サービス:
-
angular-app
: このセクションはangular-app
という名前のサービスを定義します。 -
build: .
はDocker Composeに、現在のディレクトリにあるDockerfile
を使用してイメージをビルドするように指示します。 -
ports: - "4200:4200"
は、ホストマシンの4200ポートをコンテナの4200ポートにマッピングします。これにより、ホストのWebブラウザからコンテナ内のAngularアプリケーションにアクセスできます。 - `volumes: -
-
.:/app は、ホストマシンの現在のディレクトリ(
.)をコンテナの
/app`ディレクトリにマウントします。これにより、ホスト上のファイルがコンテナ内で直接編集できます。
-
tty: true
はコンテナがバックグラウンドで実行されるのではなく、ターミナルに接続された状態で実行されるように設定します。
React
# Node.jsイメージをベースにする
FROM node:20.9
# 必要なツールのインストール
RUN apt-get update && apt-get install -y \
bash \
git \
vim \
&& rm -rf /var/lib/apt/lists/*
# 作業ディレクトリの設定
WORKDIR /app
# パッケージ依存関係のコピー
COPY package.json /app/
COPY package-lock.json /app/
# 依存関係のインストール
RUN npm install
# アプリケーションのファイルをコピー
COPY . /app/
# Reactアプリケーションを起動するコマンド
CMD ["npm", "start"]
version: '3.8'
services:
react-app:
build: .
ports:
- "3000:3000" # Reactアプリのデフォルトポートをホストとマッピング
volumes:
- .:/app # 現在のディレクトリをコンテナの/appにマウント
tty: true
このDocker構成は、Node.jsとReactを使用したWebアプリケーション開発環境をセットアップするためのものです。
Dockerfile 解説
このDockerfile
は、Reactアプリケーションの開発環境のカスタムイメージを作成するための指示を含んでいます。
-
ベースイメージ:
FROM node:20.9
は、Node.jsのバージョン20.9を含む基本的なイメージをベースとして使用します。Node.jsはReactアプリケーションの開発に必要な環境を提供します。 -
パッケージのインストール:
RUN apt-get update && apt-get install -y [...]
は、bash、git、vimなどの開発ツールをインストールします。これらはコードの編集やバージョン管理に便利です。 -
キャッシュのクリア:
&& rm -rf /var/lib/apt/lists/*
でインストールプロセス中に生成されたキャッシュを削除し、イメージのサイズを小さくします。 -
作業ディレクトリ:
WORKDIR /app
はイメージ内の作業ディレクトリを/app
に設定します。これはアプリケーションのソースコードやビルドファイルを格納する場所となります。 -
依存関係ファイルのコピー:
COPY package.json /app/
とCOPY package-lock.json /app/
はホストマシンの依存関係ファイルをコンテナ内の/app
ディレクトリにコピーします。 -
依存関係のインストール:
RUN npm install
はpackage.json
とpackage-lock.json
で指定された依存関係をインストールします。 -
アプリケーションのファイルのコピー:
COPY . /app/
はホストマシンの現在のディレクトリのすべてのファイルをコンテナの/app
ディレクトリにコピーします。 -
デフォルトコマンド:
CMD ["npm", "start"]
はコンテナが起動した際にReactアプリケーションを起動するコマンドを実行するように設定します。
docker-compose.yml 解説
このdocker-compose.yml
ファイルは、上記のDockerfile
を使用してReactアプリケーションのコンテナをセットアップします。
-
バージョン:
version: '3.8'
は使用するComposeファイルのバージョンを指定します。 -
サービス:
-
react-app
: このセクションはreact-app
という名前のサービスを定義します。 -
build: .
はDocker Composeに、現在のディレクトリにあるDockerfile
を使用してイメージをビルドするように指示します。 -
ports: - "3000:3000"
は、ホストマシンの3000ポートをコンテナの3000ポートにマッピングします。これにより、ホストのWebブラウザからコンテナ内のReactアプリケーションにアクセスできます。 - `
-
volumes: - .:/app は、ホストマシンの現在のディレクトリ(
.)をコンテナの
/app`ディレクトリにマウントします。これにより、ホスト上のファイルがコンテナ内で直接編集できます。
-
tty: true
はコンテナがバックグラウンドで実行されるのではなく、ターミナルに接続された状態で実行されるように設定します。
Vue
# Node.jsイメージをベースにする
FROM node:20
# 必要なツールのインストール
RUN apt-get update && apt-get install -y \
bash \
git \
vim \
&& rm -rf /var/lib/apt/lists/*
# 作業ディレクトリの設定
WORKDIR /app
# パッケージ依存関係のコピー
COPY package.json /app/
# yarnを使用している場合
# COPY yarn.lock /app/
# 依存関係のインストール
RUN npm install
# yarnを使用している場合
# RUN yarn install
# アプリケーションのファイルをコピー
COPY . /app/
# Vueアプリケーションを起動するコマンド
CMD ["npm", "run", "serve"]
# yarnを使用している場合
# CMD ["yarn", "serve"]
version: '3.8'
services:
vue-app:
build: .
ports:
- "8080:8080" # Vueアプリのデフォルトポートをホストとマッピング
volumes:
- .:/app # 現在のディレクトリをコンテナの/appにマウント
tty: true
このDocker構成は、Node.jsとVue.jsを使用したWebアプリケーション開発環境をセットアップするためのものです。
Dockerfile 解説
このDockerfile
は、Vue.jsアプリケーションの開発環境のカスタムイメージを作成するための指示を含んでいます。
-
ベースイメージ:
FROM node:20
は、Node.jsのバージョン20を含む基本的なイメージをベースとして使用します。Node.jsはVue.jsアプリケーションの開発に必要な環境を提供します。 -
パッケージのインストール:
RUN apt-get update && apt-get install -y [...]
は、bash、git、vimなどの開発ツールをインストールします。これらはコードの編集やバージョン管理に便利です。 -
キャッシュのクリア:
&& rm -rf /var/lib/apt/lists/*
でインストールプロセス中に生成されたキャッシュを削除し、イメージのサイズを小さくします。 -
作業ディレクトリ:
WORKDIR /app
はイメージ内の作業ディレクトリを/app
に設定します。これはアプリケーションのソースコードやビルドファイルを格納する場所となります。 -
依存関係ファイルのコピー:
COPY package.json /app/
はホストマシンのpackage.json
ファイルをコンテナ内の/app
ディレクトリにコピーします。yarnを使用している場合は、yarn.lock
ファイルもコピーします。 -
依存関係のインストール:
RUN npm install
またはRUN yarn install
は、依存関係をインストールします。 -
アプリケーションのファイルのコピー:
COPY . /app/
はホストマシンの現在のディレクトリのすべてのファイルをコンテナの/app
ディレクトリにコピーします。 -
デフォルトコマンド:
CMD ["npm", "run", "serve"]
またはCMD ["yarn", "serve"]
はコンテナが起動した際にVueアプリケーションを起動するコマンドを実行するように設定します。
docker-compose.yml 解説
このdocker-compose.yml
ファイルは、上記のDockerfile
を使用してVue.jsアプリケーションのコンテナをセットアップします。
-
バージョン:
version: '3.8'
は使用するComposeファイルのバージョンを指定します。 -
サービス:
-
vue-app
: このセクションはvue-app
という名前のサービスを定義します。 -
build: .
はDocker Composeに、現在のディレクトリにあるDockerfile
を使用してイメージをビルドするように指示します。 -
ports: - "8080:8080"
は、ホストマシンの8080ポートをコンテナの8080ポートにマッピングします。これにより、ホストのWebブラウザからコンテナ内の
-
Vue.jsアプリケーションにアクセスできます。
-
volumes: - .:/app
は、ホストマシンの現在のディレクトリ(.
)をコンテナの/app
ディレクトリにマウントします。これにより、ホスト上のファイルがコンテナ内で直接編集できます。 -
tty: true
はコンテナがバックグラウンドで実行されるのではなく、ターミナルに接続された状態で実行されるように設定します。
サービス関連
GitBucket
version: '3.8'
services:
gitbucket:
image: gitbucket/gitbucket:latest
ports:
- "8080:8080"
- "29418:29418" # Git SSH port
volumes:
- ./gitbucket:/gitbucket
environment:
- GITBUCKET_HOME=/gitbucket
depends_on:
- db
db:
image: mysql:5.7
volumes:
- ./db_data:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=rootpassword
- MYSQL_DATABASE=gitbucket
- MYSQL_USER=gitbucket
- MYSQL_PASSWORD=password
このDocker構成は、GitBucketとMySQLを使用したソースコード管理とコラボレーションプラットフォームをセットアップするためのものです。
docker-compose.yml 解説
このdocker-compose.yml
ファイルは、GitBucketとMySQLのコンテナを設定します。
-
バージョン:
version: '3.8'
は使用するDocker Composeファイルのバージョンを指定します。 -
サービス:
-
gitbucket
:-
image: gitbucket/gitbucket:latest
は、GitBucketの最新版公式Dockerイメージを使用することを指定します。GitBucketはGitベースのソースコード管理ツールです。 -
ports: - "8080:8080" - "29418:29418"
は、ホストマシンの8080ポートと29418ポートをそれぞれコンテナの同じポートにマッピングします。8080はGitBucketのWebインターフェース用、29418はGit SSH用です。 -
volumes: - ./gitbucket:/gitbucket
は、ホストマシンの./gitbucket
ディレクトリをコンテナの/gitbucket
ディレクトリにマウントします。これにより、GitBucketのデータが永続化されます。 -
environment: - GITBUCKET_HOME=/gitbucket
は、GitBucketのデータ保存先をコンテナ内の/gitbucket
に設定します。 -
depends_on: - db
は、gitbucket
サービスがdb
サービスに依存していることを示し、db
サービスが先に起動することを保証します。
-
-
db
:-
image: mysql:5.7
は、MySQLのバージョン5.7の公式Dockerイメージを使用することを指定します。 -
volumes: - ./db_data:/var/lib/mysql
は、ホストマシンの./db_data
ディレクトリをコンテナの/var/lib/mysql
ディレクトリにマウントします。これにより、MySQLデータベースのデータが永続化されます。 -
environment
セクションはMySQLデータベースのルートユーザーパスワード、データベース名、ユーザー名、ユーザーパスワードを設定します。
-
-
Gitea
version: '3.8'
services:
gitbucket:
image: gitbucket/gitbucket:latest
ports:
- "8080:8080"
- "29418:29418" # Git SSH port
volumes:
- ./gitbucket:/gitbucket
environment:
- GITBUCKET_HOME=/gitbucket
depends_on:
- db
db:
image: mysql:5.7
volumes:
- ./db_data:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=rootpassword
- MYSQL_DATABASE=gitbucket
- MYSQL_USER=gitbucket
- MYSQL_PASSWORD=password
このDocker構成は、GitBucketとMySQLを使用したソースコード管理とコラボレーションプラットフォームをセットアップするためのものです。
docker-compose.yml 解説
このdocker-compose.yml
ファイルは、GitBucketとMySQLのコンテナを設定します。
-
バージョン:
version: '3.8'
は使用するDocker Composeファイルのバージョンを指定します。 -
サービス:
-
gitbucket
:-
image: gitbucket/gitbucket:latest
は、GitBucketの最新版公式Dockerイメージを使用することを指定します。GitBucketはGitベースのソースコード管理ツールです。 -
ports: - "8080:8080" - "29418:29418"
は、ホストマシンの8080ポートと29418ポートをそれぞれコンテナの同じポートにマッピングします。8080はGitBucketのWebインターフェース用、29418はGit SSH用です。 -
volumes: - ./gitbucket:/gitbucket
は、ホストマシンの./gitbucket
ディレクトリをコンテナの/gitbucket
ディレクトリにマウントします。これにより、GitBucketのデータが永続化されます。 -
environment: - GITBUCKET_HOME=/gitbucket
は、GitBucketのデータ保存先をコンテナ内の/gitbucket
に設定します。 -
depends_on: - db
は、gitbucket
サービスがdb
サービスに依存していることを示し、db
サービスが先に起動することを保証します。
-
-
db
:-
image: mysql:5.7
は、MySQLのバージョン5.7の公式Dockerイメージを使用することを指定します。 -
volumes: - ./db_data:/var/lib/mysql
は、ホストマシンの./db_data
ディレクトリをコンテナの/var/lib/mysql
ディレクトリにマウントします。これにより、MySQLデータベースのデータが永続化されます。 -
environment
セクションはMySQLデータベースのルートユーザーパスワード、データベース名、ユーザー名、ユーザーパスワードを設定します。
-
-
JMater
# Javaの公式イメージをベースに使用
FROM openjdk:8
# JMeterのバージョンを指定
ENV JMETER_VERSION 5.4.1
# JMeterのダウンロードとインストール
RUN wget https://archive.apache.org/dist/jmeter/binaries/apache-jmeter-${JMETER_VERSION}.tgz \
&& tar -xzf apache-jmeter-${JMETER_VERSION}.tgz -C /opt \
&& rm apache-jmeter-${JMETER_VERSION}.tgz
# 環境変数の設定
ENV JMETER_HOME /opt/apache-jmeter-${JMETER_VERSION}
ENV PATH $JMETER_HOME/bin:$PATH
# 作業ディレクトリの設定
WORKDIR /jmeter
# ホストマシンとのフォルダ共有のためにボリュームを指定
VOLUME ["/jmeter"]
# Bashの起動
CMD ["bash"]
version: '3.8'
services:
jmeter:
build: .
volumes:
- .:/jmeter
tty: true
このDocker構成は、Apache JMeterを使用したパフォーマンステストおよび負荷テストの環境をセットアップするためのものです。
Dockerfile 解説
このDockerfile
は、JMeterのテスト環境のカスタムイメージを作成するための指示を含んでいます。
-
ベースイメージ:
FROM openjdk:8
は、Java 8を含む基本的なイメージをベースとして使用します。JMeterはJavaで動作するため、Javaの実行環境が必要です。 -
JMeterバージョンの指定:
ENV JMETER_VERSION 5.4.1
で使用するJMeterのバージョンを指定します。 -
JMeterのダウンロードとインストール:
-
RUN wget [...]
は、指定されたJMeterバージョンのバイナリをダウンロードします。 -
tar -xzf [...] -C /opt
でダウンロードしたtarファイルを解凍し、/opt
にインストールします。 -
rm apache-jmeter-${JMETER_VERSION}.tgz
でダウンロードしたtarファイルを削除し、容量を節約します。
-
-
環境変数の設定:
ENV JMETER_HOME /opt/apache-jmeter-${JMETER_VERSION}
とENV PATH $JMETER_HOME/bin:$PATH
でJMeterのホームディレクトリと実行パスを環境変数に設定します。 -
作業ディレクトリ:
WORKDIR /jmeter
はイメージ内の作業ディレクトリを/jmeter
に設定します。 -
ボリューム:
VOLUME ["/jmeter"]
は、ホストマシンからのファイルをコンテナ内の/jmeter
ディレクトリにコピーするためのボリュームを設定します。 -
デフォルトコマンド:
CMD ["bash"]
はコンテナが起動した際にbashシェルを起動するように設定します。
docker-compose.yml 解説
このdocker-compose.yml
ファイルは、上記のDockerfile
を使用してJMeterのコンテナをセットアップします。
-
バージョン:
version: '3.8'
は使用するComposeファイルのバージョンを指定します。 -
サービス:
-
jmeter
:-
build: .
はDocker Composeに、現在のディレクトリにあるDockerfile
を使用してイメージをビルドするように指示します。 -
volumes: - .:/jmeter
は、ホストマシンの現在のディレクトリ(.
)をコンテナの/jmeter
ディレクトリにマウントします。これにより、ホスト上のファイルがコンテナ内で直接編集できます。 -
tty: true
はコンテナがバックグラウンドで実行されるのではなく、ターミナルに接続された状態で実行されるように設定します。
-
-
Mattermost
version: '3.8'
services:
mattermost:
image: mattermost/mattermost-team:latest
ports:
- "8065:8065"
volumes:
- ./config:/mattermost/config
depends_on:
- db
db:
image: mysql:5.7
volumes:
- ./db_data:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: rootpassword
MYSQL_DATABASE: mattermost
MYSQL_USER: mattermost
MYSQL_PASSWORD: password
このDocker構成は、Mattermost(チームコミュニケーションツール)とMySQLデータベースを使用してコラボレーションプラットフォームをセットアップするためのものです。
docker-compose.yml 解説
このdocker-compose.yml
ファイルは、MattermostとMySQLのコンテナを設定します。
-
バージョン:
version: '3.8'
は使用するDocker Composeファイルのバージョンを指定します。 -
サービス:
-
mattermost
:-
image: mattermost/mattermost-team:latest
は、Mattermostチームエディションの最新版公式Dockerイメージを使用することを指定します。Mattermostはオープンソースのチームメッセージングソリューションです。 -
ports: - "8065:8065"
は、ホストマシンの8065ポートをコンテナの8065ポートにマッピングします。これにより、ホストからMattermostサーバーにアクセスできます。 -
volumes: - ./config:/mattermost/config
は、ホストマシンの./config
ディレクトリをコンテナの/mattermost/config
ディレクトリにマウントします。これにより、Mattermostの設定が永続化されます。 -
depends_on: - db
は、mattermost
サービスがdb
サービスに依存していることを示し、db
サービスが先に起動することを保証します。
-
-
db
:-
image: mysql:5.7
は、MySQLのバージョン5.7の公式Dockerイメージを使用することを指定します。 -
volumes: - ./db_data:/var/lib/mysql
は、ホストマシンの./db_data
ディレクトリをコンテナの/var/lib/mysql
ディレクトリにマウントします。これにより、MySQLデータベースのデータが永続化されます。 -
environment
セクションはMySQLデータベースのルートユーザーパスワード、データベース名、ユーザー名、ユーザーパスワードを設定します。
-
-
Redmine
version: '3.8'
services:
redmine:
image: redmine:latest
ports:
- "3000:3000"
volumes:
- ./redmine_data:/usr/src/redmine/files
environment:
REDMINE_DB_MYSQL: db
REDMINE_DB_DATABASE: redmine
REDMINE_DB_USERNAME: redmine
REDMINE_DB_PASSWORD: password
depends_on:
- db
db:
image: mysql:8.0
volumes:
- ./db_data:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: rootpassword
MYSQL_DATABASE: redmine
MYSQL_USER: redmine
MYSQL_PASSWORD: password
このDocker構成は、Redmine(プロジェクト管理ツール)とMySQLデータベースを使用してプロジェクト管理プラットフォームをセットアップするためのものです。
docker-compose.yml 解説
このdocker-compose.yml
ファイルは、RedmineとMySQLのコンテナを設定します。
-
バージョン:
version: '3.8'
は使用するDocker Composeファイルのバージョンを指定します。 -
サービス:
-
redmine
:-
image: redmine:latest
は、Redmineの最新版公式Dockerイメージを使用することを指定します。Redmineはオープンソースのプロジェクト管理ツールです。 -
ports: - "3000:3000"
は、ホストマシンの3000ポートをコンテナの3000ポートにマッピングします。これにより、ホストからRedmineサーバーにアクセスできます。 -
volumes: - ./redmine_data:/usr/src/redmine/files
は、ホストマシンの./redmine_data
ディレクトリをコンテナの/usr/src/redmine/files
ディレクトリにマウントします。これにより、Redmineのファイルが永続化されます。 -
environment
セクションは、Redmineが使用するMySQLデータベースの接続情報を設定します。 -
depends_on: - db
は、redmine
サービスがdb
サービスに依存していることを示し、db
サービスが先に起動することを保証します。
-
-
db
:-
image: mysql:8.0
は、MySQLのバージョン8.0の公式Dockerイメージを使用することを指定します。 -
volumes: - ./db_data:/var/lib/mysql
は、ホストマシンの./db_data
ディレクトリをコンテナの/var/lib/mysql
ディレクトリにマウントします。これにより、MySQLデータベースのデータが永続化されます。 -
environment
セクションはMySQLデータベースのルートユーザーパスワード、データベース名、ユーザー名、ユーザーパスワードを設定します。
-
-
WordPress
version: '3.8'
services:
wordpress:
image: wordpress:latest
ports:
- "80:80"
volumes:
- ./wordpress:/var/www/html
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: password
WORDPRESS_DB_NAME: wordpress
depends_on:
- db
db:
image: mysql:8.0
volumes:
- ./db_data:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: rootpassword
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: password
このDocker構成は、WordPressとMySQLデータベースを使用してコンテンツ管理システムをセットアップするためのものです。
docker-compose.yml 解説
このdocker-compose.yml
ファイルは、WordPressとMySQLのコンテナを設定します。
-
バージョン:
version: '3.8'
は使用するDocker Composeファイルのバージョンを指定します。 -
サービス:
-
wordpress
:-
image: wordpress:latest
は、WordPressの最新版公式Dockerイメージを使用することを指定します。WordPressは人気のあるオープンソースのコンテンツ管理システムです。 -
ports: - "80:80"
は、ホストマシンの80ポートをコンテナの80ポートにマッピングします。これにより、ホストのWebブラウザからWordPressサイトにアクセスできます。 -
volumes: - ./wordpress:/var/www/html
は、ホストマシンの./wordpress
ディレクトリをコンテナの/var/www/html
ディレクトリにマウントします。これにより、WordPressのデータが永続化されます。 -
environment
セクションは、WordPressが使用するMySQLデータベースの接続情報を設定します。 -
depends_on: - db
は、wordpress
サービスがdb
サービスに依存していることを示し、db
サービスが先に起動することを保証します。
-
-
db
:-
image: mysql:8.0
は、MySQLのバージョン8.0の公式Dockerイメージを使用することを指定します。 -
volumes: - ./db_data:/var/lib/mysql
は、ホストマシンの./db_data
ディレクトリをコンテナの/var/lib/mysql
ディレクトリにマウントします。これにより、MySQLデータベースのデータが永続化されます。 -
environment
セクションはMySQLデータベースのルートユーザーパスワード、データベース名、ユーザー名、ユーザーパスワードを設定します。
-
-