Added Dockerfile
This commit is contained in:
113
.drone.yml
113
.drone.yml
@@ -3,55 +3,100 @@ type: kubernetes
|
|||||||
name: default
|
name: default
|
||||||
|
|
||||||
trigger:
|
trigger:
|
||||||
|
branch:
|
||||||
|
- main
|
||||||
event:
|
event:
|
||||||
- push
|
- push
|
||||||
|
|
||||||
|
services:
|
||||||
|
- name: docker
|
||||||
|
image: docker.io/library/docker:25.0.2-dind-alpine3.19
|
||||||
|
privileged: true
|
||||||
|
volumes:
|
||||||
|
- name: dockersock
|
||||||
|
path: /var/run
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: build-docker-image
|
|
||||||
image: docker.io/library/docker:25.02-dind-alpine3.19
|
|
||||||
commands:
|
|
||||||
- docker build \
|
|
||||||
-t william/satisfactory-server:latest \
|
|
||||||
-t william/satisfactory-server:${DRONE_BUILD_NUMBER} \
|
|
||||||
-t william/satisfactory-server:${DRONE_COMMIT_SHA:0:7} \
|
|
||||||
./
|
|
||||||
# -t williammiceli/satisfactory-server:latest \
|
|
||||||
# -t williammiceli/satisfactory-server:${DRONE_BUILD_NUMBER} \
|
|
||||||
# -t williammiceli/satisfactory-server:${DRONE_COMMIT_SHA:0:7} \
|
|
||||||
volumes:
|
|
||||||
- name: artifacts
|
|
||||||
path: /
|
|
||||||
|
|
||||||
- name: gitea-push
|
- name: get-app-version
|
||||||
image: docker.io/library/docker:25.02-dind-alpine3.19
|
image: cm2network/steamcmd:latest
|
||||||
commands:
|
commands:
|
||||||
- echo $GITEA_TOKEN | docker login git.williammiceli.systems --username $GITEA_USERNAME --password-stdin
|
- |
|
||||||
- docker push git.williammiceli.systems/william/satisfactory-server:latest
|
BUILDID=$(/home/steam/steamcmd/steamcmd.sh +login anonymous +app_info_print 1690800 +quit | \
|
||||||
- docker push git.williammiceli.systems/william/satisfactory-server:${DRONE_BUILD_NUMBER}
|
awk 'BEGIN { capture = 0; } \
|
||||||
- docker push git.williammiceli.systems/william/satisfactory-server:${DRONE_COMMIT_SHA:0:7}
|
/"1690800"/ { capture = 1; } \
|
||||||
environment:
|
capture && /"branches"/ { inBranches = 1; } \
|
||||||
GITEA_USERNAME:
|
inBranches && /"public"/ { inPublic = 1; next; } \
|
||||||
from_secret: GITEA_USERNAME
|
inPublic && /"buildid"/ { \
|
||||||
GITEA_TOKEN:
|
gsub(/[^0-9]/, "", $0); print; exit; \
|
||||||
from_secret: GITEA_TOKEN
|
}')
|
||||||
|
- echo $BUILDID
|
||||||
|
- echo "export BUILDID=$${BUILDID}" > /scratch/EXTRA_ENVIRONMENT
|
||||||
|
- cat /scratch/EXTRA_ENVIRONMENT
|
||||||
volumes:
|
volumes:
|
||||||
- name: artifacts
|
- name: scratch
|
||||||
path: /
|
path: /scratch
|
||||||
|
|
||||||
# - name: docker-hub-push
|
# - name: print-app-version
|
||||||
# image: docker.io/library/docker:25.02-dind-alpine3.19
|
# image: docker.io/library/docker:25.0.2-dind-alpine3.19
|
||||||
# commands:
|
# commands:
|
||||||
# - echo $DOCKER_TOKEN | docker login --username $DOCKER_USERNAME --password-stdin
|
# - source /scratch/EXTRA_ENVIRONMENT
|
||||||
# - docker push williammiceli/satisfactory-server:latest
|
# - echo $BUILDID
|
||||||
|
# depends_on:
|
||||||
|
# - get-app-version
|
||||||
|
# volumes:
|
||||||
|
# - name: scratch
|
||||||
|
# path: /scratch
|
||||||
|
|
||||||
|
# - name: build
|
||||||
|
# image: docker.io/library/docker:25.0.2-dind-alpine3.19
|
||||||
|
# commands:
|
||||||
|
# - sleep 10 # give docker enough time to initialize
|
||||||
|
# - docker image build -t image:latest .
|
||||||
|
# volumes:
|
||||||
|
# - name: dockersock
|
||||||
|
# path: /var/run
|
||||||
|
|
||||||
|
# - name: push-gitea
|
||||||
|
# image: docker.io/library/docker:25.0.2-dind-alpine3.19
|
||||||
|
# commands:
|
||||||
|
# - echo $GITEA_TOKEN | docker login git.williammiceli.systems --username $GITEA_USERNAME --password-stdin
|
||||||
|
# - docker image tag image:latest git.williammiceli.systems/william/docker_satisfactory-server:latest
|
||||||
|
# - docker image tag image:latest git.williammiceli.systems/william/docker_satisfactory-server:build${DRONE_BUILD_NUMBER}
|
||||||
|
# - docker image tag image:latest git.williammiceli.systems/william/docker_satisfactory-server:sha${DRONE_COMMIT_SHA:0:12}
|
||||||
|
# - docker image push --all-tags git.williammiceli.systems/william/docker_satisfactory-server
|
||||||
|
# depends_on:
|
||||||
|
# - build
|
||||||
|
# environment:
|
||||||
|
# GITEA_USERNAME:
|
||||||
|
# from_secret: GITEA_USERNAME
|
||||||
|
# GITEA_TOKEN:
|
||||||
|
# from_secret: GITEA_TOKEN
|
||||||
|
# volumes:
|
||||||
|
# - name: dockersock
|
||||||
|
# path: /var/run
|
||||||
|
|
||||||
|
# - name: push-dockerhub
|
||||||
|
# image: docker.io/library/docker:25.0.2-dind-alpine3.19
|
||||||
|
# commands:
|
||||||
|
# - echo $DOCKER_TOKEN | docker login docker.io --username $DOCKER_USERNAME --password-stdin
|
||||||
|
# - docker image tag image:latest docker.io/williammiceli/satisfactory-server:latest
|
||||||
|
# - docker image tag image:latest docker.io/williammiceli/satisfactory-server:build${DRONE_BUILD_NUMBER}
|
||||||
|
# - docker image tag image:latest docker.io/williammiceli/satisfactory-server:sha${DRONE_COMMIT_SHA:0:12}
|
||||||
|
# - docker image push --all-tags docker.io/williammiceli/satisfactory-server
|
||||||
|
# depends_on:
|
||||||
|
# - build
|
||||||
# environment:
|
# environment:
|
||||||
# DOCKER_USERNAME:
|
# DOCKER_USERNAME:
|
||||||
# from_secret: DOCKER_USERNAME
|
# from_secret: DOCKER_USERNAME
|
||||||
# DOCKER_TOKEN:
|
# DOCKER_TOKEN:
|
||||||
# from_secret: DOCKER_TOKEN
|
# from_secret: DOCKER_TOKEN
|
||||||
# volumes:
|
# volumes:
|
||||||
# - name: artifacts
|
# - name: dockersock
|
||||||
# path: /
|
# path: /var/run
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
- name: artifacts
|
- name: dockersock
|
||||||
|
temp: {}
|
||||||
|
- name: scratch
|
||||||
temp: {}
|
temp: {}
|
||||||
43
Dockerfile
Normal file
43
Dockerfile
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
FROM docker.io/library/ubuntu:24.04
|
||||||
|
|
||||||
|
# Avoid prompts from apt
|
||||||
|
ENV DEBIAN_FRONTEND=noninteractive
|
||||||
|
|
||||||
|
# Agree to Steam terms prompt (used during steamcmd install)
|
||||||
|
RUN echo steam steam/question select "I AGREE" | debconf-set-selections && \
|
||||||
|
echo steam steam/license note '' | debconf-set-selections
|
||||||
|
|
||||||
|
# Install SteamCMD
|
||||||
|
RUN dpkg --add-architecture i386 && \
|
||||||
|
apt-get update && \
|
||||||
|
apt-get install -y --no-install-recommends ca-certificates locales steamcmd && \
|
||||||
|
ln -s /usr/games/steamcmd /usr/bin/steamcmd && \
|
||||||
|
apt-get clean && \
|
||||||
|
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
||||||
|
|
||||||
|
# Add unicode support
|
||||||
|
RUN locale-gen en_US.UTF-8
|
||||||
|
ENV LANG 'en_US.UTF-8'
|
||||||
|
ENV LANGUAGE 'en_US:en'
|
||||||
|
|
||||||
|
# Create user for SteamCMD
|
||||||
|
RUN useradd -m steam
|
||||||
|
|
||||||
|
# Switch to Steam user
|
||||||
|
USER steam
|
||||||
|
WORKDIR /home/steam
|
||||||
|
|
||||||
|
# Install Satisfactory dedicated server
|
||||||
|
RUN steamcmd +force_install_dir /home/steam/satisfactory_server +login anonymous +app_update 1690800 -beta public validate +quit
|
||||||
|
|
||||||
|
# Expose ports:
|
||||||
|
# - 7777/udp for game traffic
|
||||||
|
# - 15000/udp for query traffic
|
||||||
|
# - 15777/udp for Steam traffic
|
||||||
|
EXPOSE 7777/udp 15000/udp 15777/udp
|
||||||
|
|
||||||
|
# Persistent data volume for the server
|
||||||
|
VOLUME ["/home/steam/.config/Epic/FactoryGame/Saved"]
|
||||||
|
|
||||||
|
# Start command for the server
|
||||||
|
CMD ["/home/steam/satisfactory_server/FactoryServer.sh"]
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
[](https://drone.williammiceli.systems/William/Docker-SatisfactoryServer)
|
[](https://drone.williammiceli.systems/William/Docker_Satisfactory-Server)
|
||||||
|
|
||||||
# Useful References
|
# Useful References
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user