Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
build/
target/
.DS_Store
.DS_Store
44 changes: 44 additions & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
services:
# 開発用コンテナ
# プラグインのビルド(コンパイル)はこのコンテナ内で行います。
development:
build:
context: .
dockerfile: ./docker/development/Dockerfile
container_name: mc-plugin-dev
working_dir: /app
volumes:
# ローカルのプロジェクトフォルダをコンテナの/appに同期します。
# これにより、ローカルでコードを編集すると即座にコンテナ内に反映されます。
- .:/app
# Gradleのキャッシュを永続化し、2回目以降のビルドを高速化します。
- gradle_cache:/root/.gradle
# コンテナを起動し続け、`docker-compose exec`で中に入れるようにします。
tty: true
stdin_open: true

# Paperサーバーコンテナ
# 開発したプラグインをテストするためのマイクラサーバーです。
paper:
build:
context: .
dockerfile: ./docker/paper/Dockerfile
container_name: mc-plugin-paper
ports:
- "25565:25565" # Minecraftサーバーのポート
volumes:
# developmentコンテナでビルドしたjarファイルを、サーバーのpluginsフォルダに配置します。
- ./build/libs:/server/plugins
# ワールドデータなどを永続化します。
- paper_data:/server
# サーバーの起動にはEULAへの同意が必要です。
environment:
EULA: "TRUE"
# developmentコンテナが起動してからpaperが起動するように設定
depends_on:
- development

# Dockerが管理するデータ領域(ボリューム)の定義
volumes:
gradle_cache:
paper_data:
5 changes: 5 additions & 0 deletions docker/development/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# JAVAのプログラムを作る為の全部入りセットをインストール
FROM eclipse-temurin:21-jdk-jammy

# 作業ディレクトリを作成
WORKDIR /app
22 changes: 22 additions & 0 deletions docker/paper/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# -----------------------------------------------------------------
# docker/paper/Dockerfile
# -----------------------------------------------------------------
# プラグインをテストするためのPaperサーバー環境を定義します。(1.21.0対応版)
# -----------------------------------------------------------------

# Minecraft 1.21 は Java 21 が必須のため、ベースイメージを更新
FROM eclipse-temurin:21-jre-jammy

# 必要なツールをインストール
RUN apt-get update && apt-get install -y wget && rm -rf /var/lib/apt/lists/*

# サーバーの作業ディレクトリを作成
WORKDIR /server

# Paperサーバーの最新ビルドを自動で取得するように修正
ARG MC_VERSION=1.21
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

# サーバーを起動するコマンド
# メモリ割り当てはPCのスペックに合わせて調整してください (例: -Xms2G -Xmx2G)
CMD ["java", "-Xms1G", "-Xmx1G", "-jar", "paper.jar", "--nogui"]