-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDockerfile
More file actions
41 lines (31 loc) · 1.04 KB
/
Dockerfile
File metadata and controls
41 lines (31 loc) · 1.04 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
FROM golang:alpine3.23 AS builder
WORKDIR /tmp/gopher64
RUN apk update \
&& apk -U add --no-cache \
git \
&& mkdir -p /server \
&& git clone "https://github.com/gopher64/gopher64-netplay-server.git" /tmp/gopher64 \
&& go mod download \
&& CGO_ENABLED=0 go build -a -o gopher64-netplay-server . \
&& cp /tmp/gopher64/gopher64-netplay-server /server/gopher64-netplay-server \
&& chmod +x /server/gopher64-netplay-server \
&& rm -R /tmp/gopher64
FROM alpine:3.23
ENV USERNAME=gopher64
ENV USERHOME=/home/$USERNAME
ENV G64NS_NAME="gopher64 Server"
ENV G64NS_PORT=45000
ENV G64NS_LOGPATH="gopher64-server.log"
ENV G64NS_MOTD=""
ENV G64NS_MAXGAMES=10
ENV G64NS_DISABLEBROADCAST="false"
ENV G64NS_ENABLEAUTH="false"
RUN apk update \
&& adduser --disabled-password $USERNAME \
&& rm -rf /tmp/* /var/tmp/*
COPY --from=builder --chown=$USERNAME /server/* $USERHOME/
COPY --chown=$USERNAME ./container_files $USERHOME/
USER $USERNAME
WORKDIR $USERHOME
RUN chmod +x docker-entrypoint.sh
ENTRYPOINT ["./docker-entrypoint.sh"]