Skip to content

Commit 4882a10

Browse files
authored
Merge pull request #6 from 25MPOOL/chore/ref-docker
Docker周りの調整
2 parents b672d9d + 0943190 commit 4882a10

13 files changed

Lines changed: 102 additions & 79 deletions

File tree

.devcontainer/Dockerfile

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1 @@
1-
FROM mcr.microsoft.com/devcontainers/java:17
2-
3-
USER root
4-
RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
5-
&& apt-get -y install --no-install-recommends maven
6-
USER vscode
1+
FROM mcr.microsoft.com/devcontainers/java:21

.devcontainer/devcontainer.json

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
{
22
"name": "Minecraft Plugin Development",
3-
"build": {
4-
"dockerfile": "Dockerfile"
5-
},
3+
"dockerComposeFile": "../docker-compose.yml",
4+
"service": "dev",
5+
"workspaceFolder": "/workspace",
66
"customizations": {
77
"vscode": {
88
"extensions": [
@@ -11,6 +11,5 @@
1111
]
1212
}
1313
},
14-
"forwardPorts": [25565],
1514
"postCreateCommand": "mvn dependency:go-offline"
16-
}
15+
}

.github/workflows/build.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@ jobs:
1010
steps:
1111
- uses: actions/checkout@v4
1212

13-
- name: Set up JDK 17
13+
- name: Set up JDK 21
1414
uses: actions/setup-java@v4
1515
with:
16-
java-version: "17"
16+
java-version: "21"
1717
distribution: "temurin"
1818

1919
- name: Set up Maven
@@ -30,4 +30,4 @@ jobs:
3030
${{ runner.os }}-maven-
3131
3232
- name: Build & Format Check with Maven
33-
run: mvn -B verify
33+
run: mvn -B verify

.github/workflows/release.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,10 @@ jobs:
1414
steps:
1515
- uses: actions/checkout@v4
1616

17-
- name: Set up JDK 17
17+
- name: Set up JDK 21
1818
uses: actions/setup-java@v4
1919
with:
20-
java-version: "17"
20+
java-version: "21"
2121
distribution: "temurin"
2222

2323
- name: Cache Maven packages
@@ -35,4 +35,4 @@ jobs:
3535
uses: softprops/action-gh-release@v1
3636
with:
3737
generate_release_notes: true
38-
files: target/*.jar
38+
files: target/*.jar

.gitignore

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,2 @@
1-
build/
1+
# Maven
22
target/
3-
.DS_Store

.vscode/settings.json

Lines changed: 0 additions & 3 deletions
This file was deleted.

Makefile

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
# Minecraft LogTime Plugin - 開発用Makefile
2+
3+
.PHONY: help build start stop clean logs test reload
4+
5+
# デフォルトターゲット
6+
help:
7+
@echo "利用可能なコマンド:"
8+
@echo " make build - プラグインをビルド"
9+
@echo " make start - Paper サーバーを起動"
10+
@echo " make stop - すべてのコンテナを停止"
11+
@echo " make clean - ビルド成果物とコンテナを削除"
12+
@echo " make logs - Paper サーバーのログを表示"
13+
@echo " make test - テストを実行"
14+
@echo " make reload - プラグインをリビルドしてサーバー再起動"
15+
16+
# プラグインをビルド
17+
build:
18+
@echo "プラグインをビルド中..."
19+
mvn clean package
20+
21+
# Paper サーバーを起動
22+
start:
23+
@echo "Paper サーバーを起動中..."
24+
docker-compose up -d paper
25+
26+
# すべてのコンテナを停止
27+
stop:
28+
@echo "コンテナを停止中..."
29+
docker-compose down
30+
31+
# ビルド成果物とコンテナを削除
32+
clean:
33+
@echo "クリーンアップ中..."
34+
docker-compose down -v
35+
docker-compose build --no-cache
36+
rm -rf target/
37+
38+
# Paper サーバーのログを表示
39+
logs:
40+
docker-compose logs -f paper
41+
42+
# テストを実行
43+
test:
44+
mvn test
45+
46+
# プラグインをリビルドしてサーバー再起動(開発時に便利)
47+
reload:
48+
@echo "プラグインをリビルドしてサーバー再起動中..."
49+
make build
50+
docker-compose restart paper
51+
52+
# 開発環境を初期化(初回セットアップ用)
53+
init:
54+
@echo "開発環境を初期化中..."
55+
docker-compose build
56+
make build
57+
@echo "初期化完了!'make start' でサーバーを起動できます。"

docker-compose.yml

Lines changed: 10 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,26 @@
11
services:
2-
# 開発用コンテナ
3-
# プラグインのビルド(コンパイル)はこのコンテナ内で行います。
4-
development:
2+
dev:
53
build:
64
context: .
7-
dockerfile: ./docker/development/Dockerfile
8-
container_name: mc-plugin-dev
9-
working_dir: /app
5+
dockerfile: ./.devcontainer/Dockerfile
106
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
7+
- .:/workspace:cached
8+
- m2_cache:/home/vscode/.m2
9+
command: sleep infinity
1910

20-
# Paperサーバーコンテナ
21-
# 開発したプラグインをテストするためのマイクラサーバーです。
2211
paper:
2312
build:
2413
context: .
25-
dockerfile: ./docker/paper/Dockerfile
14+
dockerfile: ./paper/Dockerfile
2615
container_name: mc-plugin-paper
2716
ports:
28-
- "25565:25565" # Minecraftサーバーのポート
17+
- "25565:25565"
2918
volumes:
30-
# developmentコンテナでビルドしたjarファイルを、サーバーのpluginsフォルダに配置します。
31-
- ./build/libs:/server/plugins
32-
# ワールドデータなどを永続化します。
19+
- ./target:/server/plugins
3320
- paper_data:/server
34-
# サーバーの起動にはEULAへの同意が必要です。
35-
environment:
36-
EULA: "TRUE"
37-
# developmentコンテナが起動してからpaperが起動するように設定
3821
depends_on:
39-
- development
22+
- dev
4023

41-
# Dockerが管理するデータ領域(ボリューム)の定義
4224
volumes:
43-
gradle_cache:
4425
paper_data:
26+
m2_cache:

docker/development/Dockerfile

Lines changed: 0 additions & 5 deletions
This file was deleted.

docker/paper/Dockerfile

Lines changed: 0 additions & 22 deletions
This file was deleted.

0 commit comments

Comments
 (0)