mirror of
https://github.com/factoriotools/factorio-docker.git
synced 2025-07-02 06:58:16 +02:00
Compare commits
7 Commits
Author | SHA1 | Date | |
---|---|---|---|
d421adab67 | |||
b0cedbbe1b | |||
010b96e0b0 | |||
621ccf4282 | |||
1204b97fca | |||
aef16e83a7 | |||
605ca74c0e |
14
.hadolint.yaml
Normal file
14
.hadolint.yaml
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
ignored:
|
||||||
|
# ignore apt version pinning
|
||||||
|
- DL3008
|
||||||
|
# ignore pip version pinning
|
||||||
|
- DL3013
|
||||||
|
# ignore apk version pinning
|
||||||
|
- DL3018
|
||||||
|
# ignore pipefail cause Balena/resin.io images do not work with it
|
||||||
|
- DL4006
|
||||||
|
# ignore false positive regex
|
||||||
|
- SC1083
|
||||||
|
- SC2086
|
||||||
|
# ignore as need for debug
|
||||||
|
- SC2005
|
35
.travis.yml
Normal file
35
.travis.yml
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
dist: xenial
|
||||||
|
sudo: required
|
||||||
|
language: bash
|
||||||
|
services:
|
||||||
|
- docker
|
||||||
|
addons:
|
||||||
|
apt:
|
||||||
|
packages:
|
||||||
|
- jq
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
include:
|
||||||
|
- stage: test
|
||||||
|
env: HADOLINT=${HOME}/hadolint
|
||||||
|
install: curl -sLo ${HADOLINT} $(curl -s https://api.github.com/repos/hadolint/hadolint/releases/latest?access_token=${GITHUB_TOKEN} | jq -r '.assets | .[] | select(.name=="hadolint-Linux-x86_64") | .browser_download_url')
|
||||||
|
&& chmod 700 ${HADOLINT}
|
||||||
|
script:
|
||||||
|
- git ls-files --exclude='*Dockerfile' --ignored | xargs --max-lines=1 ${HADOLINT}
|
||||||
|
- bash -c 'shopt -s globstar; shellcheck **/*.sh'
|
||||||
|
- &build
|
||||||
|
stage: build
|
||||||
|
env: VERSION=0.17
|
||||||
|
script:
|
||||||
|
- ./build.sh $VERSION
|
||||||
|
after_success:
|
||||||
|
- if [ "$TRAVIS_BRANCH" == "master" ]; then
|
||||||
|
echo "$DOCKER_PASSWORD" | DOCKER login -u "$DOCKER_USERNAME" --password-stdin
|
||||||
|
docker push "factoriotools/docker_factorio_server:$VERSION"
|
||||||
|
fi
|
||||||
|
- <<: *build
|
||||||
|
env: VERSION=0.16
|
||||||
|
- <<: *build
|
||||||
|
env: VERSION=0.15
|
||||||
|
- <<: *build
|
||||||
|
env: VERSION=0.14
|
@ -1,11 +1,11 @@
|
|||||||
FROM frolvlad/alpine-glibc:alpine-3.4
|
FROM frolvlad/alpine-glibc:alpine-3.9
|
||||||
|
|
||||||
MAINTAINER https://github.com/dtandersen/docker_factorio_server
|
LABEL maintainer="https://github.com/dtandersen/docker_factorio_server"
|
||||||
|
|
||||||
ENV VERSION=0.14.23 \
|
ENV VERSION=0.14.23 \
|
||||||
SHA1=6ef84341c6fc1cf45cfdd6acc8468aaa117b9e8a
|
SHA1=6ef84341c6fc1cf45cfdd6acc8468aaa117b9e8a
|
||||||
|
|
||||||
RUN mkdir /opt && \
|
RUN mkdir -p /opt && \
|
||||||
apk --no-cache add curl tini pwgen && \
|
apk --no-cache add curl tini pwgen && \
|
||||||
curl -sSL https://www.factorio.com/get-download/$VERSION/headless/linux64 \
|
curl -sSL https://www.factorio.com/get-download/$VERSION/headless/linux64 \
|
||||||
-o /tmp/factorio_headless_x64_$VERSION.tar.gz && \
|
-o /tmp/factorio_headless_x64_$VERSION.tar.gz && \
|
||||||
|
@ -30,6 +30,6 @@ fi
|
|||||||
exec /opt/factorio/bin/x64/factorio \
|
exec /opt/factorio/bin/x64/factorio \
|
||||||
--port 34197 \
|
--port 34197 \
|
||||||
--start-server-load-latest \
|
--start-server-load-latest \
|
||||||
--server-settings $CONFIG/server-settings.json \
|
--server-settings "$CONFIG/server-settings.json" \
|
||||||
--rcon-port 27015 \
|
--rcon-port 27015 \
|
||||||
--rcon-password "$(cat "$CONFIG/rconpw")"
|
--rcon-password "$(cat "$CONFIG/rconpw")"
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
FROM frolvlad/alpine-glibc:alpine-3.6
|
FROM frolvlad/alpine-glibc:alpine-3.9
|
||||||
|
|
||||||
MAINTAINER https://github.com/dtandersen/docker_factorio_server
|
LABEL maintainer="https://github.com/dtandersen/docker_factorio_server"
|
||||||
|
|
||||||
ENV PORT=34197 \
|
ENV PORT=34197 \
|
||||||
RCON_PORT=27015 \
|
RCON_PORT=27015 \
|
||||||
VERSION=0.15.40 \
|
VERSION=0.15.40 \
|
||||||
SHA1=f79a975f6b8c0ee87e2fa60f7d1f7133f332c3ec
|
SHA1=f79a975f6b8c0ee87e2fa60f7d1f7133f332c3ec
|
||||||
|
|
||||||
RUN mkdir /opt && \
|
RUN mkdir -p /opt && \
|
||||||
apk add --update --no-cache tini pwgen && \
|
apk add --update --no-cache tini pwgen && \
|
||||||
apk add --update --no-cache --virtual .build-deps curl && \
|
apk add --update --no-cache --virtual .build-deps curl && \
|
||||||
curl -sSL https://www.factorio.com/get-download/$VERSION/headless/linux64 \
|
curl -sSL https://www.factorio.com/get-download/$VERSION/headless/linux64 \
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
FROM frolvlad/alpine-glibc:alpine-3.7
|
FROM frolvlad/alpine-glibc:alpine-3.9
|
||||||
|
|
||||||
MAINTAINER https://github.com/dtandersen/docker_factorio_server
|
LABEL maintainer="https://github.com/dtandersen/docker_factorio_server"
|
||||||
|
|
||||||
ARG USER=factorio
|
ARG USER=factorio
|
||||||
ARG GROUP=factorio
|
ARG GROUP=factorio
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
if [ -z "$1" ]; then
|
if [ -z "$1" ]; then
|
||||||
echo "No argument supplied"
|
echo "No argument supplied"
|
||||||
fi
|
fi
|
||||||
SCENARIO=$1
|
SERVER_SCENARIO=$1
|
||||||
|
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
|
||||||
@ -11,7 +11,7 @@ id
|
|||||||
mkdir -p "$SAVES"
|
mkdir -p "$SAVES"
|
||||||
mkdir -p "$CONFIG"
|
mkdir -p "$CONFIG"
|
||||||
mkdir -p "$MODS"
|
mkdir -p "$MODS"
|
||||||
mkdir -p "$SCENARIO"
|
mkdir -p "$SCENARIOS"
|
||||||
|
|
||||||
#chown -R factorio /factorio
|
#chown -R factorio /factorio
|
||||||
|
|
||||||
@ -33,7 +33,7 @@ fi
|
|||||||
|
|
||||||
exec /opt/factorio/bin/x64/factorio \
|
exec /opt/factorio/bin/x64/factorio \
|
||||||
--port "$PORT" \
|
--port "$PORT" \
|
||||||
--start-server-load-scenario "$SCENARIO" \
|
--start-server-load-scenario "$SERVER_SCENARIO" \
|
||||||
--server-settings "$CONFIG/server-settings.json" \
|
--server-settings "$CONFIG/server-settings.json" \
|
||||||
--server-whitelist "$CONFIG/server-whitelist.json" \
|
--server-whitelist "$CONFIG/server-whitelist.json" \
|
||||||
--server-banlist "$CONFIG/server-banlist.json" \
|
--server-banlist "$CONFIG/server-banlist.json" \
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
if [ -z "$1" ]; then
|
if [ -z "$1" ]; then
|
||||||
echo "No argument supplied"
|
echo "No argument supplied"
|
||||||
fi
|
fi
|
||||||
SCENARIO=$1
|
SERVER_SCENARIO=$1
|
||||||
|
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
|
||||||
@ -11,7 +11,7 @@ id
|
|||||||
mkdir -p "$SAVES"
|
mkdir -p "$SAVES"
|
||||||
mkdir -p "$CONFIG"
|
mkdir -p "$CONFIG"
|
||||||
mkdir -p "$MODS"
|
mkdir -p "$MODS"
|
||||||
mkdir -p "$SCENARIO"
|
mkdir -p "$SCENARIOS"
|
||||||
|
|
||||||
if [ ! -f "$CONFIG/server-settings.json" ]; then
|
if [ ! -f "$CONFIG/server-settings.json" ]; then
|
||||||
cp /opt/factorio/data/server-settings.example.json "$CONFIG/server-settings.json"
|
cp /opt/factorio/data/server-settings.example.json "$CONFIG/server-settings.json"
|
||||||
@ -26,4 +26,4 @@ if [ ! -f "$CONFIG/map-settings.json" ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
exec /opt/factorio/bin/x64/factorio \
|
exec /opt/factorio/bin/x64/factorio \
|
||||||
--scenario2map "$SCENARIO"
|
--scenario2map "$SERVER_SCENARIO"
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
FROM frolvlad/alpine-glibc:alpine-3.9
|
FROM frolvlad/alpine-glibc:alpine-3.9
|
||||||
|
|
||||||
MAINTAINER https://github.com/dtandersen/docker_factorio_server
|
LABEL maintainer="https://github.com/dtandersen/docker_factorio_server"
|
||||||
|
|
||||||
ARG USER=factorio
|
ARG USER=factorio
|
||||||
ARG GROUP=factorio
|
ARG GROUP=factorio
|
||||||
@ -9,8 +9,8 @@ ARG PGID=845
|
|||||||
|
|
||||||
ENV PORT=34197 \
|
ENV PORT=34197 \
|
||||||
RCON_PORT=27015 \
|
RCON_PORT=27015 \
|
||||||
VERSION=0.17.35 \
|
VERSION=0.17.38 \
|
||||||
SHA1=d651bec5e5fc25eee8770732d4cbef1461764b8d \
|
SHA1=c77f9858984213718318b3a4edc028be80274cf8 \
|
||||||
SAVES=/factorio/saves \
|
SAVES=/factorio/saves \
|
||||||
CONFIG=/factorio/config \
|
CONFIG=/factorio/config \
|
||||||
MODS=/factorio/mods \
|
MODS=/factorio/mods \
|
||||||
|
@ -29,7 +29,8 @@ if [ ! -f "$CONFIG/map-settings.json" ]; then
|
|||||||
cp /opt/factorio/data/map-settings.example.json "$CONFIG/map-settings.json"
|
cp /opt/factorio/data/map-settings.example.json "$CONFIG/map-settings.json"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if find -L "$SAVES" -iname \*.tmp.zip -mindepth 1 -print | grep -q .; then
|
NRTMPSAVES=$( find -L "$SAVES" -iname \*.tmp.zip -mindepth 1 | wc -l )
|
||||||
|
if [ $NRTMPSAVES -gt 0 ]; then
|
||||||
# Delete incomplete saves (such as after a forced exit)
|
# Delete incomplete saves (such as after a forced exit)
|
||||||
rm -f "$SAVES/*.tmp.zip"
|
rm -f "$SAVES/*.tmp.zip"
|
||||||
fi
|
fi
|
||||||
@ -46,7 +47,8 @@ else
|
|||||||
SU_EXEC=""
|
SU_EXEC=""
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if ! find -L "$SAVES" -iname \*.zip -mindepth 1 -print | grep -q .; then
|
NRSAVES=$( find -L "$SAVES" -iname \*.zip -mindepth 1 | wc -l )
|
||||||
|
if [ $NRSAVES -eq 0 ]; then
|
||||||
# Generate a new map if no save ZIPs exist
|
# Generate a new map if no save ZIPs exist
|
||||||
$SU_EXEC /opt/factorio/bin/x64/factorio \
|
$SU_EXEC /opt/factorio/bin/x64/factorio \
|
||||||
--create "$SAVES/_autosave1.zip" \
|
--create "$SAVES/_autosave1.zip" \
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
if [ -z "$1" ]; then
|
if [ -z "$1" ]; then
|
||||||
echo "No argument supplied"
|
echo "No argument supplied"
|
||||||
fi
|
fi
|
||||||
SCENARIO="$1"
|
SERVER_SCENARIO="$1"
|
||||||
|
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
|
||||||
@ -11,7 +11,7 @@ id
|
|||||||
mkdir -p "$SAVES"
|
mkdir -p "$SAVES"
|
||||||
mkdir -p "$CONFIG"
|
mkdir -p "$CONFIG"
|
||||||
mkdir -p "$MODS"
|
mkdir -p "$MODS"
|
||||||
mkdir -p "$SCENARIO"
|
mkdir -p "$SCENARIOS"
|
||||||
|
|
||||||
#chown -R factorio /factorio
|
#chown -R factorio /factorio
|
||||||
|
|
||||||
@ -33,7 +33,7 @@ fi
|
|||||||
|
|
||||||
exec /opt/factorio/bin/x64/factorio \
|
exec /opt/factorio/bin/x64/factorio \
|
||||||
--port "$PORT" \
|
--port "$PORT" \
|
||||||
--start-server-load-scenario "$SCENARIO" \
|
--start-server-load-scenario "$SERVER_SCENARIO" \
|
||||||
--server-settings "$CONFIG/server-settings.json" \
|
--server-settings "$CONFIG/server-settings.json" \
|
||||||
--server-whitelist "$CONFIG/server-whitelist.json" \
|
--server-whitelist "$CONFIG/server-whitelist.json" \
|
||||||
--server-banlist "$CONFIG/server-banlist.json" \
|
--server-banlist "$CONFIG/server-banlist.json" \
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
if [ -z "$1" ]; then
|
if [ -z "$1" ]; then
|
||||||
echo "No argument supplied"
|
echo "No argument supplied"
|
||||||
fi
|
fi
|
||||||
SCENARIO="$1"
|
SERVER_SCENARIO="$1"
|
||||||
|
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
|
||||||
@ -11,7 +11,7 @@ id
|
|||||||
mkdir -p "$SAVES"
|
mkdir -p "$SAVES"
|
||||||
mkdir -p "$CONFIG"
|
mkdir -p "$CONFIG"
|
||||||
mkdir -p "$MODS"
|
mkdir -p "$MODS"
|
||||||
mkdir -p "$SCENARIO"
|
mkdir -p "$SCENARIOS"
|
||||||
|
|
||||||
if [ ! -f "$CONFIG/server-settings.json" ]; then
|
if [ ! -f "$CONFIG/server-settings.json" ]; then
|
||||||
cp /opt/factorio/data/server-settings.example.json "$CONFIG/server-settings.json"
|
cp /opt/factorio/data/server-settings.example.json "$CONFIG/server-settings.json"
|
||||||
@ -26,4 +26,4 @@ if [ ! -f "$CONFIG/map-settings.json" ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
exec /opt/factorio/bin/x64/factorio \
|
exec /opt/factorio/bin/x64/factorio \
|
||||||
--scenario2map "$SCENARIO"
|
--scenario2map "$SERVER_SCENARIO"
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
# Factorio [](https://microbadger.com/images/factoriotools/factorio "Get your own image badge on microbadger.com") [](https://hub.docker.com/r/factoriotools/factorio/) [](https://hub.docker.com/r/factoriotools/factorio/)
|
# Factorio [](https://microbadger.com/images/factoriotools/factorio "Get your own image badge on microbadger.com") [](https://hub.docker.com/r/factoriotools/factorio/) [](https://hub.docker.com/r/factoriotools/factorio/)
|
||||||
|
|
||||||
* `0.17.35`, `0.17`, `latest` [(0.17/Dockerfile)](https://github.com/dtandersen/docker_factorio_server/blob/master/0.17/Dockerfile)
|
* `0.17.38`, `0.17`, `latest` [(0.17/Dockerfile)](https://github.com/dtandersen/docker_factorio_server/blob/master/0.17/Dockerfile)
|
||||||
* `0.16.51`, `0.16`, `stable` [(0.16/Dockerfile)](https://github.com/dtandersen/docker_factorio_server/blob/master/0.16/Dockerfile)
|
* `0.16.51`, `0.16`, `stable` [(0.16/Dockerfile)](https://github.com/dtandersen/docker_factorio_server/blob/master/0.16/Dockerfile)
|
||||||
* `0.15.40`, `0.15` [(0.15/Dockerfile)](https://github.com/dtandersen/docker_factorio_server/blob/master/0.15/Dockerfile)
|
* `0.15.40`, `0.15` [(0.15/Dockerfile)](https://github.com/dtandersen/docker_factorio_server/blob/master/0.15/Dockerfile)
|
||||||
* `0.14.23`, `0.14` [(0.14/Dockerfile)](https://github.com/dtandersen/docker_factorio_server/blob/master/0.14/Dockerfile)
|
* `0.14.23`, `0.14` [(0.14/Dockerfile)](https://github.com/dtandersen/docker_factorio_server/blob/master/0.14/Dockerfile)
|
||||||
|
12
build.sh
Executable file
12
build.sh
Executable file
@ -0,0 +1,12 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
set -eo pipefail
|
||||||
|
|
||||||
|
if [ -z "$1" ] ; then
|
||||||
|
echo "Usage: ./build.sh \$VERSION"
|
||||||
|
else
|
||||||
|
VERSION="$1"
|
||||||
|
fi
|
||||||
|
|
||||||
|
cd "$VERSION" || exit
|
||||||
|
|
||||||
|
docker build . -t "factoriotools/docker_factorio_server:$VERSION"
|
Reference in New Issue
Block a user