diff --git a/.gitignore b/.gitignore
index 16d54bb..cda63ba 100644
--- a/.gitignore
+++ b/.gitignore
@@ -22,3 +22,4 @@
# jetbrains setting folder
.idea/
+.php-cs-fixer.cache
diff --git a/docker/.env.example b/docker/.env.example
new file mode 100644
index 0000000..870c717
--- /dev/null
+++ b/docker/.env.example
@@ -0,0 +1,8 @@
+# Webサーバー (Apache) がホストOSで公開されるポート番号
+WEB_PORT=8080
+
+# データベース (MySQL) がホストOSで公開されるポート番号
+DB_PORT=3306
+
+# phpMyAdmin がホストOSで公開されるポート番号
+PHPMYADMIN_PORT=8081
\ No newline at end of file
diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml
new file mode 100644
index 0000000..b41faee
--- /dev/null
+++ b/docker/docker-compose.yml
@@ -0,0 +1,44 @@
+version: "3.8"
+
+services:
+ web:
+ image: php:8.2-apache
+ ports:
+ - "${WEB_PORT:-8080}:80"
+ volumes:
+ - ./src:/var/www/html
+
+ depends_on:
+ - db
+
+ container_name: hello-programmer-world_web
+
+ db:
+ image: mysql:8.0
+ restart: unless-stopped
+ environment:
+ MYSQL_DATABASE: "trainee_db"
+ MYSQL_USER: "trainee_user"
+ MYSQL_PASSWORD: "trainee_password"
+ MYSQL_ROOT_PASSWORD: "root_password"
+
+ volumes:
+ - db_data:/var/lib/mysql
+ ports:
+ - "${DB_PORT:-3306}:3306"
+
+ container_name: hello-programmer-world_db
+
+ phpmyadmin:
+ image: phpmyadmin/phpmyadmin
+ ports:
+ - "${PHPMYADMIN_PORT:-8081}:80"
+ environment:
+ PMA_HOST: db
+ MYSQL_ROOT_PASSWORD: root_password # データベースサービスのrootパスワードと同じもの
+ depends_on:
+ - db
+ container_name: hello-programmer-world_phpmyadmin
+
+volumes:
+ db_data:
diff --git a/docker/src/index.php b/docker/src/index.php
new file mode 100644
index 0000000..b4a83eb
--- /dev/null
+++ b/docker/src/index.php
@@ -0,0 +1,23 @@
+";
+ echo json_encode($message, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
+ echo "";
+}
+
+?>
+
+
+