Compare commits

...

36 Commits

Author SHA1 Message Date
b38750e4ac Update to Factorio 0.17.74 2019-10-25 15:17:09 +00:00
bfb8b7fd95 Update to Factorio 0.17.73 2019-10-24 18:30:51 +00:00
8b5d4e06df Update to Factorio 0.17.72 2019-10-18 13:08:58 +00:00
33060cc4fb Update readme 2019-10-18 11:56:15 +02:00
e1beb32f81 Fix CI 2019-10-18 11:56:07 +02:00
2c1d1cd985 Fix CI
hopefully!
2019-10-18 11:52:25 +02:00
39fd391e9b Fix ci script for manual runs 2019-10-18 11:37:43 +02:00
a5d6466f0b Fix variable expansion 2019-10-18 11:21:15 +02:00
c6b15d89c1 Fix shellcheck 2019-10-18 11:15:36 +02:00
7c9011dcee Add note for when 0.17 leaves experimental entirely 2019-10-18 10:53:16 +02:00
b5af3130e2 Format 2019-10-18 10:51:06 +02:00
e307b1d537 CI: Add support for comma seperated extra tags 2019-10-18 10:50:25 +02:00
8c0ddf99ce Update to Factorio 0.17.71 2019-10-16 16:06:48 +00:00
d7b79c567a Update to Factorio 0.17.70 2019-10-15 20:20:03 +00:00
3e62698b4b Update store links 2019-10-01 16:25:31 +02:00
d4870219f6 Added a link to Gog in addition to Factorio's website and Steam in the README.md (#290) 2019-10-01 11:48:30 +02:00
01194242b9 Update to Factorio 0.17.69 2019-09-19 15:32:52 +00:00
4255475b18 Update to Factorio 0.17.68 2019-09-04 17:49:55 +00:00
4ff8179912 Update to Factorio 0.17.67 2019-09-03 12:49:54 +00:00
db14988396 update to 0.17.66 2019-08-16 13:40:26 +00:00
cd29f2003b Load admin list in scenario (#288) 2019-08-16 13:58:59 +02:00
cd2d89a7bc update to 0.17.65 2019-08-14 11:35:26 +00:00
2d9f646728 Fix whitelist args in scenario entrypoint 2019-08-11 01:40:33 +02:00
9e96ca5aa8 update to 0.17.64 2019-08-09 19:24:45 +00:00
5c947846d1 Fix 0.17.63 SHA (#284) 2019-08-07 13:57:43 +02:00
edd0c95d9b update to 0.17.63 2019-08-06 12:20:39 +00:00
6651289d6e update to 0.17.62 2019-08-02 22:37:32 +00:00
784626b689 update to 0.17.61 2019-08-02 17:07:36 +00:00
47ce1706db update to 0.17.60 2019-07-30 14:37:31 +00:00
460ba0187d Update to 0.17.59 (#281)
* Update Dockerfile

* Update README.md
2019-07-26 00:28:10 +02:00
6d496def35 update to 0.17.58 2019-07-15 21:28:01 +00:00
9f8f6da0d2 update to 0.17.57 2019-07-15 17:43:15 +00:00
71c75671d5 Add debug code when sha match fails 2019-07-13 12:23:01 +02:00
5a66d1a8df Revert "Fix 0.17.56 sha"
This reverts commit a48b9d107d.
2019-07-13 12:22:21 +02:00
a48b9d107d Fix 0.17.56 sha 2019-07-13 12:05:08 +02:00
e5f34134f7 Apply shell-format 2019-07-13 12:04:34 +02:00
8 changed files with 104 additions and 86 deletions

View File

@ -16,11 +16,12 @@ jobs:
- bash -c 'shopt -s globstar; shellcheck **/*.sh'
- &build
stage: build
# set EXTRA_TAG to latest,stable when no more experimental versions for 0.17 come out
env: VERSION_SHORT=0.17 EXTRA_TAG=latest
script:
- ./build.sh $VERSION_SHORT
- <<: *build
env: VERSION_SHORT=0.16 EXTRA_TAG=stable
env: VERSION_SHORT=0.16
- <<: *build
env: VERSION_SHORT=0.15
- <<: *build

View File

@ -5,16 +5,16 @@ LABEL maintainer="https://github.com/factoriotools/factorio-docker"
ENV VERSION=0.14.23 \
SHA1=6ef84341c6fc1cf45cfdd6acc8468aaa117b9e8a
RUN mkdir -p /opt && \
apk --no-cache add curl tini pwgen && \
curl -sSL https://www.factorio.com/get-download/$VERSION/headless/linux64 \
-o /tmp/factorio_headless_x64_$VERSION.tar.gz && \
echo "$SHA1 /tmp/factorio_headless_x64_$VERSION.tar.gz" | sha1sum -c && \
tar xzf /tmp/factorio_headless_x64_$VERSION.tar.gz --directory /opt && \
rm /tmp/factorio_headless_x64_$VERSION.tar.gz && \
apk del curl && \
ln -s /factorio/saves /opt/factorio/saves && \
ln -s /factorio/mods /opt/factorio/mods
RUN mkdir -p /opt \
&& apk --no-cache add curl tini pwgen \
&& curl -sSL https://www.factorio.com/get-download/$VERSION/headless/linux64 \
-o /tmp/factorio_headless_x64_$VERSION.tar.gz \
&& echo "$SHA1 /tmp/factorio_headless_x64_$VERSION.tar.gz" | sha1sum -c \
&& tar xzf /tmp/factorio_headless_x64_$VERSION.tar.gz --directory /opt \
&& rm /tmp/factorio_headless_x64_$VERSION.tar.gz \
&& apk del curl \
&& ln -s /factorio/saves /opt/factorio/saves \
&& ln -s /factorio/mods /opt/factorio/mods
VOLUME /factorio

View File

@ -7,18 +7,18 @@ ENV PORT=34197 \
VERSION=0.15.40 \
SHA1=f79a975f6b8c0ee87e2fa60f7d1f7133f332c3ec
RUN mkdir -p /opt && \
apk add --update --no-cache tini pwgen && \
apk add --update --no-cache --virtual .build-deps curl && \
curl -sSL https://www.factorio.com/get-download/$VERSION/headless/linux64 \
-o /tmp/factorio_headless_x64_$VERSION.tar.xz && \
echo "$SHA1 /tmp/factorio_headless_x64_$VERSION.tar.xz" | sha1sum -c && \
tar xf /tmp/factorio_headless_x64_$VERSION.tar.xz --directory /opt && \
chmod -R ugo=rwx /opt/factorio && \
rm /tmp/factorio_headless_x64_$VERSION.tar.xz && \
ln -s /factorio/saves /opt/factorio/saves && \
ln -s /factorio/mods /opt/factorio/mods && \
apk del .build-deps
RUN mkdir -p /opt \
&& apk add --update --no-cache tini pwgen \
&& apk add --update --no-cache --virtual .build-deps curl \
&& curl -sSL https://www.factorio.com/get-download/$VERSION/headless/linux64 \
-o /tmp/factorio_headless_x64_$VERSION.tar.xz \
&& echo "$SHA1 /tmp/factorio_headless_x64_$VERSION.tar.xz" | sha1sum -c \
&& tar xf /tmp/factorio_headless_x64_$VERSION.tar.xz --directory /opt \
&& chmod -R ugo=rwx /opt/factorio \
&& rm /tmp/factorio_headless_x64_$VERSION.tar.xz \
&& ln -s /factorio/saves /opt/factorio/saves \
&& ln -s /factorio/mods /opt/factorio/mods \
&& apk del .build-deps
VOLUME /factorio

View File

@ -19,23 +19,23 @@ ENV PORT=34197 \
PUID="$PUID" \
PGID="$PGID"
RUN mkdir -p /opt /factorio && \
apk add --update --no-cache pwgen su-exec shadow && \
apk add --update --no-cache --virtual .build-deps curl && \
curl -sSL https://www.factorio.com/get-download/$VERSION/headless/linux64 \
-o /tmp/factorio_headless_x64_$VERSION.tar.xz && \
echo "$SHA1 /tmp/factorio_headless_x64_$VERSION.tar.xz" | sha1sum -c && \
tar xf /tmp/factorio_headless_x64_$VERSION.tar.xz --directory /opt && \
chmod ugo=rwx /opt/factorio && \
rm /tmp/factorio_headless_x64_$VERSION.tar.xz && \
ln -s $SAVES /opt/factorio/saves && \
ln -s $MODS /opt/factorio/mods && \
ln -s $SCENARIOS /opt/factorio/scenarios && \
ln -s $SCRIPTOUTPUT /opt/factorio/script-output && \
apk del .build-deps && \
addgroup -g $PGID -S $GROUP && \
adduser -u $PUID -G $GROUP -s /bin/sh -SDH $USER && \
chown -R $USER:$GROUP /opt/factorio /factorio
RUN mkdir -p /opt /factorio \
&& apk add --update --no-cache pwgen su-exec shadow \
&& apk add --update --no-cache --virtual .build-deps curl \
&& curl -sSL https://www.factorio.com/get-download/$VERSION/headless/linux64 \
-o /tmp/factorio_headless_x64_$VERSION.tar.xz \
&& echo "$SHA1 /tmp/factorio_headless_x64_$VERSION.tar.xz" | sha1sum -c \
&& tar xf /tmp/factorio_headless_x64_$VERSION.tar.xz --directory /opt \
&& chmod ugo=rwx /opt/factorio \
&& rm /tmp/factorio_headless_x64_$VERSION.tar.xz \
&& ln -s $SAVES /opt/factorio/saves \
&& ln -s $MODS /opt/factorio/mods \
&& ln -s $SCENARIOS /opt/factorio/scenarios \
&& ln -s $SCRIPTOUTPUT /opt/factorio/script-output \
&& apk del .build-deps \
&& addgroup -g $PGID -S $GROUP \
&& adduser -u $PUID -G $GROUP -s /bin/sh -SDH $USER \
&& chown -R $USER:$GROUP /opt/factorio /factorio
VOLUME /factorio

View File

@ -9,8 +9,8 @@ ARG PGID=845
ENV PORT=34197 \
RCON_PORT=27015 \
VERSION=0.17.56 \
SHA1=fdf609a314ab4100b1547b92f718ec24bc9c0eb4 \
VERSION=0.17.74 \
SHA1=ed275564687e91bed3a969ddf8907560c9cfe431 \
SAVES=/factorio/saves \
CONFIG=/factorio/config \
MODS=/factorio/mods \
@ -19,21 +19,23 @@ ENV PORT=34197 \
PUID="$PUID" \
PGID="$PGID"
RUN mkdir -p /opt /factorio && \
apk add --update --no-cache --no-progress bash binutils curl gettext jq libintl pwgen shadow su-exec && \
curl -sSL "https://www.factorio.com/get-download/$VERSION/headless/linux64" \
-o /tmp/factorio_headless_x64_$VERSION.tar.xz && \
echo "$SHA1 /tmp/factorio_headless_x64_$VERSION.tar.xz" | sha1sum -c && \
tar xf "/tmp/factorio_headless_x64_$VERSION.tar.xz" --directory /opt && \
chmod ugo=rwx /opt/factorio && \
rm "/tmp/factorio_headless_x64_$VERSION.tar.xz" && \
ln -s "$SAVES" /opt/factorio/saves && \
ln -s "$MODS" /opt/factorio/mods && \
ln -s "$SCENARIOS" /opt/factorio/scenarios && \
ln -s "$SCRIPTOUTPUT" /opt/factorio/script-output && \
addgroup -g "$PGID" -S "$GROUP" && \
adduser -u "$PUID" -G "$GROUP" -s /bin/sh -SDH "$USER" && \
chown -R "$USER":"$GROUP" /opt/factorio /factorio
RUN set -ox pipefail \
&& archive="/tmp/factorio_headless_x64_$VERSION.tar.xz" \
&& mkdir -p /opt /factorio \
&& apk add --update --no-cache --no-progress bash binutils curl file gettext jq libintl pwgen shadow su-exec \
&& curl -sSL "https://www.factorio.com/get-download/$VERSION/headless/linux64" -o "$archive" \
&& echo "$SHA1 $archive" | sha1sum -c \
|| (sha1sum "$archive" && file "$archive" && exit 1) \
&& tar xf "$archive" --directory /opt \
&& chmod ugo=rwx /opt/factorio \
&& rm "$archive" \
&& ln -s "$SAVES" /opt/factorio/saves \
&& ln -s "$MODS" /opt/factorio/mods \
&& ln -s "$SCENARIOS" /opt/factorio/scenarios \
&& ln -s "$SCRIPTOUTPUT" /opt/factorio/script-output \
&& addgroup -g "$PGID" -S "$GROUP" \
&& adduser -u "$PUID" -G "$GROUP" -s /bin/sh -SDH "$USER" \
&& chown -R "$USER":"$GROUP" /opt/factorio /factorio
VOLUME /factorio

View File

@ -33,8 +33,10 @@ exec /opt/factorio/bin/x64/factorio \
--port "$PORT" \
--start-server-load-scenario "$SERVER_SCENARIO" \
--server-settings "$CONFIG/server-settings.json" \
--server-whitelist "$CONFIG/server-whitelist.json" \
--server-banlist "$CONFIG/server-banlist.json" \
--server-whitelist "$CONFIG/server-whitelist.json" \
--use-server-whitelist \
--server-adminlist "$CONFIG/server-adminlist.json" \
--rcon-port "$RCON_PORT" \
--rcon-password "$(cat "$CONFIG/rconpw")" \
--server-id /factorio/config/server-id.json

View File

@ -1,7 +1,8 @@
# Factorio [![Build Status](https://travis-ci.org/factoriotools/factorio-docker.svg?branch=master)](https://travis-ci.org/factoriotools/factorio-docker) [![Docker Version](https://images.microbadger.com/badges/version/factoriotools/factorio.svg)](https://hub.docker.com/r/factoriotools/factorio/) [![Docker Pulls](https://img.shields.io/docker/pulls/factoriotools/factorio.svg?maxAge=600)](https://hub.docker.com/r/factoriotools/factorio/) [![Docker Stars](https://img.shields.io/docker/stars/factoriotools/factorio.svg?maxAge=600)](https://hub.docker.com/r/factoriotools/factorio/) [![Microbadger Layers](https://images.microbadger.com/badges/image/factoriotools/factorio.svg)](https://microbadger.com/images/factoriotools/factorio "Get your own image badge on microbadger.com")
* `0.17.56`, `0.17`, `latest` [(0.17/Dockerfile)](https://github.com/factoriotools/factorio-docker/blob/master/0.17/Dockerfile)
* `0.16.51`, `0.16`, `stable` [(0.16/Dockerfile)](https://github.com/factoriotools/factorio-docker/blob/master/0.16/Dockerfile)
* `0.17.74`, `0.17`, `latest` [(0.17/Dockerfile)](https://github.com/factoriotools/factorio-docker/blob/master/0.17/Dockerfile)
* `0.17.74` `stable` [(0.17/Dockerfile)](https://github.com/factoriotools/factorio-docker/blob/master/0.17/Dockerfile)
* `0.16.51`, `0.16` [(0.16/Dockerfile)](https://github.com/factoriotools/factorio-docker/blob/master/0.16/Dockerfile)
* `0.15.40`, `0.15` [(0.15/Dockerfile)](https://github.com/factoriotools/factorio-docker/blob/master/0.15/Dockerfile)
* `0.14.23`, `0.14` [(0.14/Dockerfile)](https://github.com/factoriotools/factorio-docker/blob/master/0.14/Dockerfile)
@ -22,7 +23,7 @@ You will be mining resources, researching technologies, building infrastructure,
The game is very stable and optimized for building massive factories. You can create your own maps, write mods in Lua or play with friends via Multiplayer.
NOTE: This is only the server. The game is available at [factorio.com](https://www.factorio.com) and [Steam](http://store.steampowered.com/app/427520/).
NOTE: This is only the server. The full game is available at [Factorio.com](https://www.factorio.com), [Steam](https://store.steampowered.com/app/427520/), [GOG.com](https://www.gog.com/game/factorio) and [Humble Bundle](https://www.humblebundle.com/store/factorio).
# Usage

View File

@ -2,9 +2,9 @@
set -eoux pipefail
if [[ -z ${1:-} ]] && [[ -n ${CI:-} ]]; then
echo "Usage: ./build.sh \$VERSION_SHORT"
echo 'Usage: ./build.sh VERSION_SHORT'
exit 1
elif [[ $CI == true ]]; then
elif [[ ${CI:-} == true ]] || [[ -n ${1:-} ]]; then
VERSION_SHORT="$1"
else
VERSION_SHORT=$(find . -maxdepth 1 -type d | sort | tail -1 | grep -o "[[0-9]].[[0-9]]*")
@ -16,61 +16,73 @@ cd "$VERSION_SHORT" || exit 1
VERSION=$(grep -oP '[0-9]+\.[0-9]+\.[0-9]+' Dockerfile | head -1)
DOCKER_REPO=factoriotools/factorio
if [[ $TRAVIS_PULL_REQUEST == true ]]; then
if [[ ${TRAVIS_PULL_REQUEST:-} == true ]]; then
TAGS="$DOCKER_REPO:$TRAVIS_PULL_REQUEST_SLUG"
else
if [[ -n ${CI:-} ]]; then
# we are either on master or on a tag build
if [[ $TRAVIS_BRANCH == master ]] || [[ $TRAVIS_BRANCH == "$VERSION" ]]; then
TAGS="$DOCKER_REPO:$VERSION -t $DOCKER_REPO:$VERSION_SHORT"
TAGS="-t $DOCKER_REPO:$VERSION -t $DOCKER_REPO:$VERSION_SHORT"
# we are on an incremental build of a tag
elif [[ $VERSION == "${TRAVIS_BRANCH%-*}" ]]; then
TAGS="$DOCKER_REPO:$TRAVIS_BRANCH -t $DOCKER_REPO:$VERSION -t $DOCKER_REPO:$VERSION_SHORT"
TAGS="-t $DOCKER_REPO:$TRAVIS_BRANCH -t $DOCKER_REPO:$VERSION -t $DOCKER_REPO:$VERSION_SHORT"
# we build a other branch than master
elif [[ -n $TRAVIS_BRANCH ]]; then
TAGS="$DOCKER_REPO:$TRAVIS_BRANCH"
TAGS="-t $DOCKER_REPO:$TRAVIS_BRANCH"
fi
else
# we are not in CI and tag version and version short
elif [[ $CI == "" ]]; then
TAGS="$DOCKER_REPO:$VERSION -t $DOCKER_REPO:$VERSION_SHORT"
TAGS="-t $DOCKER_REPO:$VERSION -t $DOCKER_REPO:$VERSION_SHORT"
fi
if [[ -n ${EXTRA_TAG:-} ]]; then
TAGS="$TAGS -t $DOCKER_REPO:$EXTRA_TAG"
IFS=","
for TAG in $EXTRA_TAG; do
TAGS+=" -t $DOCKER_REPO:$EXTRA_TAG"
done
fi
fi
# shellcheck disable=SC2086
docker build . -t $TAGS
# shellcheck disable=SC2068
eval docker build . ${TAGS[@]}
docker images
if [[ ${TRAVIS_BRANCH:-} ]]; then
TRAVIS_BRANCH_VERSION=${TRAVIS_BRANCH%-*}
fi
# only push when:
# latest changes where made in the folder corosponding to the version we build, we are on master and don#t build a PR.
if [[ $(dirname "$(git diff --name-only HEAD^)") =~ $VERSION_SHORT ]] && [[ $TRAVIS_BRANCH == master ]] && [[ $TRAVIS_PULL_REQUEST_BRANCH == "" ]] ||
# we build a tag and we are not on master
[[ $VERSION == "${TRAVIS_BRANCH%-*}" ]] && [[ $TRAVIS_PULL_REQUEST_BRANCH == "" ]] ||
[[ $VERSION == "${TRAVIS_BRANCH_VERSION:-}" ]] && [[ $TRAVIS_PULL_REQUEST_BRANCH == "" ]] ||
# we are not in CI
[[ $CI == "" ]]; then
[[ -z ${CI:-} ]]; then
if [[ $CI == true ]]; then
if [[ ${CI:-} == true ]]; then
echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin
fi
# push a tag on a branch other than master
if [[ -n $TRAVIS_BRANCH ]] && [[ $VERSION != "${TRAVIS_BRANCH%-*}" ]] && [[ $TRAVIS_BRANCH != "master" ]]; then
if [[ -n ${TRAVIS_BRANCH:-} ]] && [[ $VERSION != "${TRAVIS_BRANCH_VERSION:-}" ]] && [[ ${TRAVIS_BRANCH:-} != "master" ]]; then
docker push "$DOCKER_REPO:$TRAVIS_BRANCH"
fi
# push an incremental tag
if [[ $VERSION == "${TRAVIS_BRANCH%-*}" ]]; then
if [[ $VERSION == "${TRAVIS_BRANCH_VERSION:-}" ]]; then
docker push "$DOCKER_REPO:$TRAVIS_BRANCH"
fi
if [[ -n $TRAVIS_TAG ]] || [[ $CI == "" ]]; then
if [[ -n ${TRAVIS_TAG:-} ]] || [[ -z ${CI:-} ]]; then
docker push "$DOCKER_REPO:$VERSION"
docker push "$DOCKER_REPO:$VERSION_SHORT"
fi
if [[ -n ${EXTRA_TAG:-} ]]; then
docker push "$DOCKER_REPO:$EXTRA_TAG"
IFS=","
for TAG in $EXTRA_TAG; do
docker push "$DOCKER_REPO:$TAG"
done
fi
curl -X POST https://hooks.microbadger.com/images/factoriotools/factorio/TmmKGNp8jKcFqZvcJhTCIAJVluw=