Added Dockerfile
This commit is contained in:
113
.drone.yml
113
.drone.yml
@@ -3,55 +3,100 @@ type: kubernetes
|
||||
name: default
|
||||
|
||||
trigger:
|
||||
branch:
|
||||
- main
|
||||
event:
|
||||
- push
|
||||
|
||||
services:
|
||||
- name: docker
|
||||
image: docker.io/library/docker:25.0.2-dind-alpine3.19
|
||||
privileged: true
|
||||
volumes:
|
||||
- name: dockersock
|
||||
path: /var/run
|
||||
|
||||
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
|
||||
image: docker.io/library/docker:25.02-dind-alpine3.19
|
||||
- name: get-app-version
|
||||
image: cm2network/steamcmd:latest
|
||||
commands:
|
||||
- echo $GITEA_TOKEN | docker login git.williammiceli.systems --username $GITEA_USERNAME --password-stdin
|
||||
- docker push git.williammiceli.systems/william/satisfactory-server:latest
|
||||
- docker push git.williammiceli.systems/william/satisfactory-server:${DRONE_BUILD_NUMBER}
|
||||
- docker push git.williammiceli.systems/william/satisfactory-server:${DRONE_COMMIT_SHA:0:7}
|
||||
environment:
|
||||
GITEA_USERNAME:
|
||||
from_secret: GITEA_USERNAME
|
||||
GITEA_TOKEN:
|
||||
from_secret: GITEA_TOKEN
|
||||
- |
|
||||
BUILDID=$(/home/steam/steamcmd/steamcmd.sh +login anonymous +app_info_print 1690800 +quit | \
|
||||
awk 'BEGIN { capture = 0; } \
|
||||
/"1690800"/ { capture = 1; } \
|
||||
capture && /"branches"/ { inBranches = 1; } \
|
||||
inBranches && /"public"/ { inPublic = 1; next; } \
|
||||
inPublic && /"buildid"/ { \
|
||||
gsub(/[^0-9]/, "", $0); print; exit; \
|
||||
}')
|
||||
- echo $BUILDID
|
||||
- echo "export BUILDID=$${BUILDID}" > /scratch/EXTRA_ENVIRONMENT
|
||||
- cat /scratch/EXTRA_ENVIRONMENT
|
||||
volumes:
|
||||
- name: artifacts
|
||||
path: /
|
||||
- name: scratch
|
||||
path: /scratch
|
||||
|
||||
# - name: docker-hub-push
|
||||
# image: docker.io/library/docker:25.02-dind-alpine3.19
|
||||
# - name: print-app-version
|
||||
# image: docker.io/library/docker:25.0.2-dind-alpine3.19
|
||||
# commands:
|
||||
# - echo $DOCKER_TOKEN | docker login --username $DOCKER_USERNAME --password-stdin
|
||||
# - docker push williammiceli/satisfactory-server:latest
|
||||
# - source /scratch/EXTRA_ENVIRONMENT
|
||||
# - 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:
|
||||
# DOCKER_USERNAME:
|
||||
# from_secret: DOCKER_USERNAME
|
||||
# DOCKER_TOKEN:
|
||||
# from_secret: DOCKER_TOKEN
|
||||
# volumes:
|
||||
# - name: artifacts
|
||||
# path: /
|
||||
# - name: dockersock
|
||||
# path: /var/run
|
||||
|
||||
volumes:
|
||||
- name: artifacts
|
||||
- name: dockersock
|
||||
temp: {}
|
||||
- name: scratch
|
||||
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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user