diff --git a/Dockerfile b/Dockerfile index e6b8226..5d47d34 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,7 +2,10 @@ FROM openjdk:8-slim WORKDIR /mc_server COPY ./server . -WORKDIR /mc_data +RUN groupadd -r minecraft && useradd --no-log-init -r -g minecraft minecraft +USER minecraft +WORKDIR /mc_data # Copy files only if they don't yet exist (server.jar, server.properties, etc) and start the server -CMD for file in $(ls /mc_server); do if test ! -s $file; then echo "copying $file" && cp -r /mc_server/$file .; fi; done && java -Xmx"$MAX_RAM"G -Xms"$MIN_RAM"G -jar server.jar nogui \ No newline at end of file +CMD for file in $(ls /mc_server); do if test ! -s $file; then echo "copying $file" && cp -r /mc_server/$file .; fi; done && \ +java -server -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSIncrementalPacing -XX:ParallelGCThreads="$THREADS" -XX:+AggressiveOpts -Xmx"$MAX_RAM"G -Xms"$MIN_RAM"G -jar server.jar nogui \ No newline at end of file diff --git a/docker-compose.yaml b/docker-compose.yaml index 9aaec43..b4a5698 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -3,7 +3,7 @@ version: '3' services: mc: build: . - image: ducoterra/minecraft_1.15.1:0.0.5 + image: ducoterra/minecraft_1.15.1:0.0.8 ports: - 25565:25565 volumes: @@ -13,4 +13,6 @@ services: restart: always environment: - MAX_RAM=2 - - MIN_RAM=1 \ No newline at end of file + - MIN_RAM=1 + - THREADS=2 + user: minecraft \ No newline at end of file diff --git a/k8s/deploy.yaml b/k8s/deploy.yaml index 2e223ff..0a6eb88 100644 --- a/k8s/deploy.yaml +++ b/k8s/deploy.yaml @@ -13,27 +13,29 @@ spec: spec: containers: - name: minecraft-1-15-1 - image: ducoterra/minecraft_1.15.1:0.0.4 + image: ducoterra/minecraft_1.15.1:0.0.8 + ports: + - containerPort: 25565 + volumeMounts: + - mountPath: /mc_data + name: data + tty: true + stdin: true + env: + - name: MAX_RAM + value: "2" + - name: MIN_RAM + value: "1" + - name: THREADS + value: "4" resources: requests: memory: 1Mi cpu: 1m limits: - memory: "8Gi" - cpu: "4" - ports: - - containerPort: 25565 - volumeMounts: - - mountPath: /mc_data - name: data - tty: true - stdin: true - env: - - name: MAX_RAM - value: "8" - - name: MIN_RAM - value: "1" + memory: "2Gi" + cpu: "2" volumes: - - name: data - persistentVolumeClaim: - claimName: minecraft-1-15-1 + - name: data + persistentVolumeClaim: + claimName: minecraft-1-15-1 diff --git a/k8s/service.yaml b/k8s/service.yaml index 385417d..ab418bf 100644 --- a/k8s/service.yaml +++ b/k8s/service.yaml @@ -8,4 +8,6 @@ spec: ports: - port: 25565 targetPort: 25565 - type: LoadBalancer + type: NodePort + externalIPs: + - 3.14.1.101