From 0a14373750feefe20386e5f82636eeda1c8ace85 Mon Sep 17 00:00:00 2001 From: ika-2-2 <219417869+ika-2-2@users.noreply.github.com> Date: Sat, 23 Aug 2025 00:32:00 +0900 Subject: [PATCH 1/4] =?UTF-8?q?feat:=20docker=E3=83=87=E3=82=A3=E3=83=AC?= =?UTF-8?q?=E3=82=AF=E3=83=88=E3=83=AA=E4=BD=9C=E6=88=90=E3=80=81docker-co?= =?UTF-8?q?mpose.yml=E3=82=92=E5=8A=A0=E7=AD=86=E3=80=81.gitignore?= =?UTF-8?q?=E3=83=95=E3=82=A1=E3=82=A4=E3=83=AB=E3=82=92=E8=BF=BD=E5=8A=A0?= =?UTF-8?q?=E3=81=97=E3=81=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 0 docker-compose.yml | 44 +++++++++++++++++++++++++++++++++++++++++ docker/paper/Dockerfile | 0 3 files changed, 44 insertions(+) create mode 100644 .gitignore create mode 100644 docker-compose.yml create mode 100644 docker/paper/Dockerfile diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e69de29 diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..ab8ee69 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,44 @@ +version: '3.8' + +services: +# 開発用コンテナ +# プラグインのビルド(コンパイル)はこのコンテナ内で行います。 + development: + build: + context: . + dockerfile: .docker/development/Dockerfile + container_name: mc-plugin-dev + working_dir: /app + volumes: + # ローカルのプロジェクトフォルダをコンテナの/appに同期します。 + # これにより、ローカルでコードを編集すると即座にコンテナ内に反映されます。 + -.:app + - 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" # マイクラサーバーのポート + volumes: + # developmentコンテナでビルドしたjarファイルを、サーバーのpluginsフォルダに配置 + -./build/libs:/server/plugins + - paper_data:/server + # サーバーの起動にはEURAへの同意が必須 + environment: + - EULA="TRUE" + # developmentコンテナが起動してからpaperが起動するよう設定 + depends_on: + - development + +# dockerが管理するデータ領域(ボリューム)の定義 +volumes: + grable_cache: + paper_data: diff --git a/docker/paper/Dockerfile b/docker/paper/Dockerfile new file mode 100644 index 0000000..e69de29 From 58841d5c70397aabae0015dfede29dcbf1f615ee Mon Sep 17 00:00:00 2001 From: ika-2-2 <219417869+ika-2-2@users.noreply.github.com> Date: Sat, 23 Aug 2025 01:42:56 +0900 Subject: [PATCH 2/4] =?UTF-8?q?paper/Dockerile=E3=81=A8development/Dockerf?= =?UTF-8?q?ile=E3=82=92=E5=8A=A0=E7=AD=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker/paper/Dockerfile | 16 ++++++++++++++++ docker/paper/development/Dockerfile | 5 +++++ 2 files changed, 21 insertions(+) create mode 100644 docker/paper/development/Dockerfile diff --git a/docker/paper/Dockerfile b/docker/paper/Dockerfile index e69de29..88d9c1f 100644 --- a/docker/paper/Dockerfile +++ b/docker/paper/Dockerfile @@ -0,0 +1,16 @@ +# JAVAプログラムを動かす最小限の環境。 +FROM eclipse-temurin:17-jre-jammy + +# 必要なツールをインストール +RUN apt-get update && apt-get install -y wget && rm -rf /var/lib/apt/lists/* + +# サーバーの作業ディレクトリを作成 +WORKDIR /server + +# マイクラのバージョン +ARG MC_VERSION=1.21.0 +# paperサーバーのjarファイルをダウンロード +RUN wget -0 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 + +# サーバーを起動するコマンド +CMD [ "java", "-Xms1G", "-Xmx1G", "-jar", "paper.jar", "--nogui" ] diff --git a/docker/paper/development/Dockerfile b/docker/paper/development/Dockerfile new file mode 100644 index 0000000..20b211a --- /dev/null +++ b/docker/paper/development/Dockerfile @@ -0,0 +1,5 @@ +# JAVAのプログラムを作る為の全部入りセットをインストール +FROM eclipse-temurin:17-jdk-jammy + +# 作業ディレクトリを作成 +WORKDIR /app \ No newline at end of file From 36f2e2b7702fb4d146eb2852a3ccde2a276c8104 Mon Sep 17 00:00:00 2001 From: ika-2-2 <219417869+ika-2-2@users.noreply.github.com> Date: Sat, 23 Aug 2025 02:03:06 +0900 Subject: [PATCH 3/4] =?UTF-8?q?=E3=82=BF=E3=82=A4=E3=83=9D=E3=82=92?= =?UTF-8?q?=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker-compose.yml | 42 +++++++++++------------ docker/{paper => }/development/Dockerfile | 0 docker/paper/Dockerfile | 9 +++-- 3 files changed, 25 insertions(+), 26 deletions(-) rename docker/{paper => }/development/Dockerfile (100%) diff --git a/docker-compose.yml b/docker-compose.yml index ab8ee69..33af68b 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,44 +1,44 @@ -version: '3.8' - services: -# 開発用コンテナ -# プラグインのビルド(コンパイル)はこのコンテナ内で行います。 - development: - build: + # 開発用コンテナ + # プラグインのビルド(コンパイル)はこのコンテナ内で行います。 + development: + build: context: . - dockerfile: .docker/development/Dockerfile + dockerfile: ./docker/development/Dockerfile container_name: mc-plugin-dev working_dir: /app volumes: - # ローカルのプロジェクトフォルダをコンテナの/appに同期します。 - # これにより、ローカルでコードを編集すると即座にコンテナ内に反映されます。 - -.:app + # ローカルのプロジェクトフォルダをコンテナの/appに同期します。 + # これにより、ローカルでコードを編集すると即座にコンテナ内に反映されます。 + - .:/app + # Gradleのキャッシュを永続化し、2回目以降のビルドを高速化します。 - gradle_cache:/root/.gradle # コンテナを起動し続け、`docker-compose exec`で中に入れるようにします。 tty: true stdin_open: true - # paperサーバーコンテナ - # 開発したプラグインをテストするマイクラサーバー + # Paperサーバーコンテナ + # 開発したプラグインをテストするためのマイクラサーバーです。 paper: - build: + build: context: . dockerfile: ./docker/paper/Dockerfile container_name: mc-plugin-paper ports: - -"25565:25565" # マイクラサーバーのポート + - "25565:25565" # Minecraftサーバーのポート volumes: - # developmentコンテナでビルドしたjarファイルを、サーバーのpluginsフォルダに配置 - -./build/libs:/server/plugins + # developmentコンテナでビルドしたjarファイルを、サーバーのpluginsフォルダに配置します。 + - ./build/libs:/server/plugins + # ワールドデータなどを永続化します。 - paper_data:/server - # サーバーの起動にはEURAへの同意が必須 + # サーバーの起動にはEULAへの同意が必要です。 environment: - - EULA="TRUE" - # developmentコンテナが起動してからpaperが起動するよう設定 + EULA: "TRUE" + # developmentコンテナが起動してからpaperが起動するように設定 depends_on: - development -# dockerが管理するデータ領域(ボリューム)の定義 +# Dockerが管理するデータ領域(ボリューム)の定義 volumes: - grable_cache: + gradle_cache: paper_data: diff --git a/docker/paper/development/Dockerfile b/docker/development/Dockerfile similarity index 100% rename from docker/paper/development/Dockerfile rename to docker/development/Dockerfile diff --git a/docker/paper/Dockerfile b/docker/paper/Dockerfile index 88d9c1f..851fded 100644 --- a/docker/paper/Dockerfile +++ b/docker/paper/Dockerfile @@ -1,4 +1,4 @@ -# JAVAプログラムを動かす最小限の環境。 +# ベースとなるイメージ FROM eclipse-temurin:17-jre-jammy # 必要なツールをインストール @@ -8,9 +8,8 @@ RUN apt-get update && apt-get install -y wget && rm -rf /var/lib/apt/lists/* WORKDIR /server # マイクラのバージョン -ARG MC_VERSION=1.21.0 -# paperサーバーのjarファイルをダウンロード -RUN wget -0 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 +ARG MC_VERSION=1.20.4 +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 # サーバーを起動するコマンド -CMD [ "java", "-Xms1G", "-Xmx1G", "-jar", "paper.jar", "--nogui" ] +CMD ["java", "-Xms1G", "-Xmx1G", "-jar", "paper.jar", "--nogui"] \ No newline at end of file From 796fdb556483614c612282414f7cb3c6b41d3c56 Mon Sep 17 00:00:00 2001 From: ika-2-2 <219417869+ika-2-2@users.noreply.github.com> Date: Sat, 23 Aug 2025 02:59:00 +0900 Subject: [PATCH 4/4] =?UTF-8?q?fetelix:=20paper=E3=81=AE=E3=83=90=E3=83=BC?= =?UTF-8?q?=E3=82=B8=E3=83=A7=E3=83=B3=E3=82=921.21.0=E3=81=AB=E5=9B=BA?= =?UTF-8?q?=E5=AE=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + docker/development/Dockerfile | 2 +- docker/paper/Dockerfile | 17 ++++++++++++----- 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index e69de29..d163863 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1 @@ +build/ \ No newline at end of file diff --git a/docker/development/Dockerfile b/docker/development/Dockerfile index 20b211a..dfb965e 100644 --- a/docker/development/Dockerfile +++ b/docker/development/Dockerfile @@ -1,5 +1,5 @@ # JAVAのプログラムを作る為の全部入りセットをインストール -FROM eclipse-temurin:17-jdk-jammy +FROM eclipse-temurin:21-jdk-jammy # 作業ディレクトリを作成 WORKDIR /app \ No newline at end of file diff --git a/docker/paper/Dockerfile b/docker/paper/Dockerfile index 851fded..d2a5bd3 100644 --- a/docker/paper/Dockerfile +++ b/docker/paper/Dockerfile @@ -1,5 +1,11 @@ -# ベースとなるイメージ -FROM eclipse-temurin:17-jre-jammy +# ----------------------------------------------------------------- +# 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/* @@ -7,9 +13,10 @@ RUN apt-get update && apt-get install -y wget && rm -rf /var/lib/apt/lists/* # サーバーの作業ディレクトリを作成 WORKDIR /server -# マイクラのバージョン -ARG MC_VERSION=1.20.4 +# 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 # サーバーを起動するコマンド -CMD ["java", "-Xms1G", "-Xmx1G", "-jar", "paper.jar", "--nogui"] \ No newline at end of file +# メモリ割り当てはPCのスペックに合わせて調整してください (例: -Xms2G -Xmx2G) +CMD ["java", "-Xms1G", "-Xmx1G", "-jar", "paper.jar", "--nogui"]