Skip to content

Commit b672d9d

Browse files
authored
Merge pull request #5 from 25MPOOL/feature/1/create-docker
Docker
2 parents 018ff05 + e8084a0 commit b672d9d

4 files changed

Lines changed: 73 additions & 1 deletion

File tree

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
1+
build/
12
target/
2-
.DS_Store
3+
.DS_Store

docker-compose.yml

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
services:
2+
# 開発用コンテナ
3+
# プラグインのビルド(コンパイル)はこのコンテナ内で行います。
4+
development:
5+
build:
6+
context: .
7+
dockerfile: ./docker/development/Dockerfile
8+
container_name: mc-plugin-dev
9+
working_dir: /app
10+
volumes:
11+
# ローカルのプロジェクトフォルダをコンテナの/appに同期します。
12+
# これにより、ローカルでコードを編集すると即座にコンテナ内に反映されます。
13+
- .:/app
14+
# Gradleのキャッシュを永続化し、2回目以降のビルドを高速化します。
15+
- gradle_cache:/root/.gradle
16+
# コンテナを起動し続け、`docker-compose exec`で中に入れるようにします。
17+
tty: true
18+
stdin_open: true
19+
20+
# Paperサーバーコンテナ
21+
# 開発したプラグインをテストするためのマイクラサーバーです。
22+
paper:
23+
build:
24+
context: .
25+
dockerfile: ./docker/paper/Dockerfile
26+
container_name: mc-plugin-paper
27+
ports:
28+
- "25565:25565" # Minecraftサーバーのポート
29+
volumes:
30+
# developmentコンテナでビルドしたjarファイルを、サーバーのpluginsフォルダに配置します。
31+
- ./build/libs:/server/plugins
32+
# ワールドデータなどを永続化します。
33+
- paper_data:/server
34+
# サーバーの起動にはEULAへの同意が必要です。
35+
environment:
36+
EULA: "TRUE"
37+
# developmentコンテナが起動してからpaperが起動するように設定
38+
depends_on:
39+
- development
40+
41+
# Dockerが管理するデータ領域(ボリューム)の定義
42+
volumes:
43+
gradle_cache:
44+
paper_data:

docker/development/Dockerfile

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# JAVAのプログラムを作る為の全部入りセットをインストール
2+
FROM eclipse-temurin:21-jdk-jammy
3+
4+
# 作業ディレクトリを作成
5+
WORKDIR /app

docker/paper/Dockerfile

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# -----------------------------------------------------------------
2+
# docker/paper/Dockerfile
3+
# -----------------------------------------------------------------
4+
# プラグインをテストするためのPaperサーバー環境を定義します。(1.21.0対応版)
5+
# -----------------------------------------------------------------
6+
7+
# Minecraft 1.21 は Java 21 が必須のため、ベースイメージを更新
8+
FROM eclipse-temurin:21-jre-jammy
9+
10+
# 必要なツールをインストール
11+
RUN apt-get update && apt-get install -y wget && rm -rf /var/lib/apt/lists/*
12+
13+
# サーバーの作業ディレクトリを作成
14+
WORKDIR /server
15+
16+
# Paperサーバーの最新ビルドを自動で取得するように修正
17+
ARG MC_VERSION=1.21
18+
RUN wget -O paper.jar https://api.papermc.io/v2/projects/paper/versions/${MC_VERSION}/builds/$(wget -qO- https://api.papermc.io/v2/projects/paper/versions/${MC_VERSION} | grep -o '"builds":\[[^]]*' | grep -o '[0-9]*' | tail -1)/downloads/paper-${MC_VERSION}-$(wget -qO- https://api.papermc.io/v2/projects/paper/versions/${MC_VERSION} | grep -o '"builds":\[[^]]*' | grep -o '[0-9]*' | tail -1).jar
19+
20+
# サーバーを起動するコマンド
21+
# メモリ割り当てはPCのスペックに合わせて調整してください (例: -Xms2G -Xmx2G)
22+
CMD ["java", "-Xms1G", "-Xmx1G", "-jar", "paper.jar", "--nogui"]

0 commit comments

Comments
 (0)