add docker and docker compose files
This commit is contained in:
7
.dockerignore
Normal file
7
.dockerignore
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
.git/
|
||||||
|
.gitignore
|
||||||
|
target/
|
||||||
|
config.toml
|
||||||
|
Dockerfile
|
||||||
|
docker-compose.yml
|
||||||
|
.dockerignore
|
||||||
8
.env.example
Normal file
8
.env.example
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
LISTEN_ADDR=0.0.0.0:25565
|
||||||
|
SERVER_ADDR=mc-container:25565
|
||||||
|
MOTD_SERVER_ADDR=0.0.0.0:8081
|
||||||
|
RCON_ADDR=mc-container:25575
|
||||||
|
RCON_PASSWORD=password
|
||||||
|
IDLE_TIMEOUT_SECS=600
|
||||||
|
POLLING_INTERVAL_MILLIS=10000
|
||||||
|
CONTAINER_NAME=mc-container
|
||||||
2
.gitignore
vendored
2
.gitignore
vendored
@@ -1,2 +1,4 @@
|
|||||||
/target
|
/target
|
||||||
config.toml
|
config.toml
|
||||||
|
.env
|
||||||
|
docker-compose.yml
|
||||||
|
|||||||
31
Dockerfile
Normal file
31
Dockerfile
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
FROM rust:1.90-slim-bookworm AS builder
|
||||||
|
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
RUN apt-get update && apt-get install -y \
|
||||||
|
pkg-config \
|
||||||
|
libssl-dev \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
COPY Cargo.toml Cargo.lock ./
|
||||||
|
|
||||||
|
COPY src ./src
|
||||||
|
COPY assets ./assets
|
||||||
|
|
||||||
|
RUN cargo build --release
|
||||||
|
|
||||||
|
FROM debian:bookworm-slim
|
||||||
|
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
RUN apt-get update && apt-get install -y \
|
||||||
|
ca-certificates \
|
||||||
|
libssl3 \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
COPY --from=builder /app/target/release/mc-proxy-controller /app/mc-proxy-controller
|
||||||
|
|
||||||
|
COPY entrypoint.sh /app/entrypoint.sh
|
||||||
|
RUN chmod +x /app/entrypoint.sh
|
||||||
|
|
||||||
|
ENTRYPOINT ["/app/entrypoint.sh"]
|
||||||
37
docker-compose-example.yml
Normal file
37
docker-compose-example.yml
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
services:
|
||||||
|
mc-proxy-controller:
|
||||||
|
build:
|
||||||
|
context: .
|
||||||
|
dockerfile: Dockerfile
|
||||||
|
container_name: mc-proxy-controller
|
||||||
|
restart: unless-stopped
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
- /var/run/docker.sock:/var/run/docker.sock:ro
|
||||||
|
|
||||||
|
ports:
|
||||||
|
- "25565:25565"
|
||||||
|
- "8081:8081"
|
||||||
|
|
||||||
|
environment:
|
||||||
|
LISTEN_ADDR: "0.0.0.0:25565"
|
||||||
|
|
||||||
|
SERVER_ADDR: "mc-container:25565"
|
||||||
|
|
||||||
|
MOTD_SERVER_ADDR: "0.0.0.0:8081"
|
||||||
|
|
||||||
|
RCON_ADDR: "mc-container:25575"
|
||||||
|
RCON_PASSWORD: "${RCON_PASSWORD:-minecraft}"
|
||||||
|
|
||||||
|
IDLE_TIMEOUT_SECS: "${IDLE_TIMEOUT_SECS:-900}"
|
||||||
|
POLLING_INTERVAL_MILLIS: "${POLLING_INTERVAL_MILLIS:-10000}"
|
||||||
|
|
||||||
|
CONTAINER_NAME: "mc-container"
|
||||||
|
|
||||||
|
networks:
|
||||||
|
- mc-container-network
|
||||||
|
|
||||||
|
networks:
|
||||||
|
mc-container-network:
|
||||||
|
external: true
|
||||||
|
name: mc-container_default
|
||||||
20
entrypoint.sh
Normal file
20
entrypoint.sh
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
cat > /app/config.toml <<EOF
|
||||||
|
listen_addr = "${LISTEN_ADDR:-0.0.0.0:25565}"
|
||||||
|
server_addr = "${SERVER_ADDR:-mc-server:25565}"
|
||||||
|
motd_server_addr = "${MOTD_SERVER_ADDR:-127.0.0.1:8081}"
|
||||||
|
rcon_addr = "${RCON_ADDR:-mc-server:25575}"
|
||||||
|
rcon_password = "${RCON_PASSWORD:-minecraft}"
|
||||||
|
idle_timeout_secs = ${IDLE_TIMEOUT_SECS:-300}
|
||||||
|
polling_interval_millis = ${POLLING_INTERVAL_MILLIS:-250}
|
||||||
|
container_name = "${CONTAINER_NAME:-mc-server}"
|
||||||
|
EOF
|
||||||
|
|
||||||
|
echo "Generated config.toml:"
|
||||||
|
cat /app/config.toml
|
||||||
|
echo ""
|
||||||
|
echo "Starting mc-proxy-controller..."
|
||||||
|
|
||||||
|
exec /app/mc-proxy-controller
|
||||||
Reference in New Issue
Block a user