Compare commits

..

207 Commits

Author SHA1 Message Date
4872cf89f6 Updated to Alpine 3.5 2017-04-24 17:38:14 +00:00
99c0355d12 0.15.0!!! 2017-04-24 17:33:21 +00:00
7b351c473a 0.14.23 2017-04-24 17:17:15 +00:00
b839d7d339 use --port $PORT to start server 2017-04-24 09:43:32 -07:00
40974755b6 fixed markdown in readme 2017-04-24 09:02:07 -07:00
548f9b27d0 preparation for 0.15 2017-04-24 09:00:45 -07:00
be99942271 Merge pull request #2 from jaredledvina/feature/update-v-0.14.22
Bump version to 0.14.22
2017-02-04 20:05:18 -08:00
f19f731662 Bump version to 0.14.22 2017-02-03 18:26:26 -05:00
eea4c90fa5 0.14.21 is stable 2016-11-30 10:35:58 -08:00
ce161daf33 minor text changes 2016-11-24 19:47:53 -08:00
a3d7c55f68 minor text changes 2016-11-24 19:46:21 -08:00
736dbea3b3 minor text changes 2016-11-24 19:45:05 -08:00
aeb549b3b5 0.14.21 2016-11-24 19:32:02 -08:00
2906b59721 0.14.21 2016-11-24 19:28:57 -08:00
abdce572de promoted 0.14.20 to stable 2016-11-17 10:12:34 -08:00
ca7fc9ff13 0.14.20 2016-11-09 18:03:33 -08:00
ebcca5251c 0.14.19 2016-11-04 13:38:12 -07:00
b72b906fdb Merge branch 'master' of github.com:dtandersen/docker_factorio_server
Conflicts:
	0.14/Dockerfile
2016-11-04 20:28:37 +00:00
b643a13e88 don't cache 2016-11-04 20:25:41 +00:00
6499b0974e 0.14.19 2016-11-04 20:25:28 +00:00
c9052c3296 minor text changes 2016-11-04 13:21:30 -07:00
832e64511d minor text changes 2016-11-03 12:40:17 -07:00
a3890f37fa minor text changes 2016-11-03 12:26:29 -07:00
4089f8d59a 0.14 is stable 2016-11-03 12:10:08 -07:00
4026ec5359 minor text changes 2016-11-03 08:02:43 -07:00
9e93a34d6e minor text changes 2016-11-03 00:50:03 -07:00
05d697afac minor text changes 2016-11-03 00:41:04 -07:00
d9a5604448 didn't need factorio.crt 2016-11-03 01:12:01 +00:00
128e15db7c 0.4.18 2016-11-02 17:50:00 -07:00
71e9179722 minor text changes 2016-11-02 16:48:00 -07:00
e3a97f3448 minor text changes 2016-11-02 16:42:24 -07:00
5506d33475 minor text changes 2016-11-02 16:40:27 -07:00
0314266309 proxy details 2016-11-02 15:37:22 -07:00
16a85d32e9 keep it simple 2016-11-02 12:20:47 -07:00
d36578a471 add 0.13 version 2016-11-01 14:01:30 -07:00
9f8453645a experimental 0.13 version 2016-11-01 20:47:26 +00:00
eb4814f16c clean /tmp/factorio 2016-11-01 20:32:57 +00:00
c85ce5e75a show contents of /tmp/factorio 2016-11-01 20:32:37 +00:00
d4a5f0f019 Merge branch '0.14-dev' of github.com:dtandersen/docker_factorio_server into 0.14-dev 2016-11-01 20:32:00 +00:00
8222bd1b45 use sh instead of bash 2016-11-01 20:31:24 +00:00
de26a241af minor text changes 2016-11-01 10:15:18 -07:00
ea4843498b more on save files 2016-10-31 13:30:08 -07:00
009548446f first save is _autosave1.zip 2016-10-31 13:28:13 -07:00
a48b23201b first save is _autosave1.zip 2016-10-31 20:27:11 +00:00
e9962a431b pretty up tree 2016-10-31 13:20:47 -07:00
2f41a0d660 rcon docs 2016-10-31 13:15:24 -07:00
53c953707b update docs for rcon 2016-10-31 13:07:26 -07:00
b53d98cb2a set rcon password 2016-10-31 19:59:57 +00:00
833de3cc46 run with tini 2016-10-31 19:55:01 +00:00
d94543bbcd minor text changes 2016-10-27 16:14:16 -07:00
7074d5284b fix links 2016-10-27 16:07:35 -07:00
c119b077c8 updated to 0.14.17 2016-10-27 22:37:09 +00:00
479d7e2fe1 move stuff to 0.14 2016-10-27 14:52:54 -07:00
1247c62b13 minor text changes 2016-10-27 12:41:35 -07:00
a7f765a070 Merge branch 'master' of github.com:dtandersen/docker_factorio_server into 0.14.16-dev 2016-10-27 12:28:35 -07:00
1c8b9fd5b9 minor text changes 2016-10-27 12:27:42 -07:00
1ddcbec2c5 Merge pull request #1 from dtandersen/0.14.16-dev
added 0.14 version
2016-10-27 12:06:17 -07:00
2d82e0a19c added 0.14 version 2016-10-27 11:58:19 -07:00
6320dd04df minor text changes 2016-10-27 11:49:22 -07:00
1ea5ddfbee update badges 2016-10-27 11:48:00 -07:00
067ac0ac14 troubleshooting 2016-10-27 11:44:05 -07:00
036a15ce1e minor text changes 2016-10-27 11:36:55 -07:00
003f0cdbe6 minor text changes 2016-10-27 11:30:19 -07:00
43fafdcfe5 minor text changes 2016-10-26 17:36:00 -07:00
667bd97388 Merge remote-tracking branch 'remotes/origin/0.14.16'
# Conflicts:
#	Dockerfile
#	README.md
2016-10-26 17:15:54 -07:00
62da6f5f56 follow symlink 2016-10-27 00:08:21 +00:00
47ca759742 remove sample settings 2016-10-26 16:58:31 -07:00
e12e303d2d docs 2016-10-26 16:56:00 -07:00
ebf0afa524 format list 2016-10-26 16:53:13 -07:00
1b5a9d5b9e format list 2016-10-26 16:52:05 -07:00
3404976818 doc updates 2016-10-26 16:46:21 -07:00
ba68274a7b revise docs 2016-10-26 16:41:54 -07:00
ee509835db describe new volume structure 2016-10-26 16:30:32 -07:00
ee3385959d use one main /factorio volume 2016-10-26 23:15:09 +00:00
0ac68ac31a log example 2016-10-26 15:08:06 -07:00
552520136d remove curl after use 2016-10-26 15:08:06 -07:00
2b63d0ef0e log example 2016-10-26 14:44:56 -07:00
390c76906b remove curl after use 2016-10-26 18:32:06 +00:00
5bc0e128f1 Merge remote-tracking branch 'remotes/origin/0.14.16' 2016-10-26 10:48:08 -07:00
0fdac9cebb specify port 2016-10-26 17:46:34 +00:00
86ec899b06 mount volumes to /tmp 2016-10-26 17:27:28 +00:00
81edeb0183 fixed json syntax 2016-10-26 17:27:11 +00:00
08090e70a0 fixed check for saves 2016-10-26 17:26:47 +00:00
16602ba40b specify location of settings 2016-10-25 21:57:49 -07:00
16b6a5b253 Merge branch '0.14.16' 2016-10-25 14:08:09 -07:00
44f5ffd6b4 add badges 2016-10-25 13:48:02 -07:00
8fd01ef07f Merge remote-tracking branch 'remotes/origin/0.14.16'
# Conflicts:
#	Dockerfile
#	README.md
2016-10-25 13:39:45 -07:00
6b8c0f01ab update checksum 2016-10-25 13:35:32 -07:00
284e7f00b0 update example config 2016-10-25 13:34:55 -07:00
abe0c82a8e add back exec 2016-10-25 12:33:45 -07:00
f90f3c7569 removed exec 2016-10-25 19:30:12 +00:00
9dca3590ae update docs 2016-10-25 11:59:50 -07:00
1e7c8bc8b7 typo 2016-10-25 11:40:53 -07:00
4ed57b0c20 rename entrypoint 2016-10-25 18:39:28 +00:00
88258a263e utility script 2016-10-25 18:31:07 +00:00
f3df464856 simplify startup 2016-10-25 18:30:24 +00:00
3a007b377f update alpine 2016-10-25 18:02:33 +00:00
ddf7f99a2b doc update 2016-10-25 10:28:04 -07:00
8a3df67b52 example config 2016-10-25 10:11:09 -07:00
14b11329d7 updated readme 2016-10-25 17:03:50 +00:00
2d79854697 update readme 2016-10-25 16:58:54 +00:00
65658b10d6 use server-settings.json for settings 2016-10-25 16:49:23 +00:00
be4c89d937 updated to 0.14.14 2016-10-25 15:51:34 +00:00
cb52eb3dff Merge pull request #8 from bkach/0.12.33
Updated to 0.12.33
2016-05-04 07:23:54 +02:00
322fe61b13 Corrected SHA1 2016-05-04 01:43:57 +01:00
3e42118a04 Updated to 0.12.33
- Updated Dockerfile and SHA1
- Updated README
2016-05-03 15:00:35 +01:00
ee861acee5 Merge pull request #7 from dtandersen/0.12.32_update
0.12.32 update
2016-04-30 17:35:26 +02:00
f69732d4f8 updated readme to 0.12.32 2016-04-29 16:08:48 -07:00
86914046e0 updated version and sha1 for 0.12.32 2016-04-29 16:07:55 -07:00
f7c2b144ce updated readme for 0.12.32 2016-04-29 15:56:19 -07:00
a2179f3f61 updated version and sha1 for 0.12.32 2016-04-29 15:51:47 -07:00
3cc553c786 Merge branch 'master' of https://github.com/zopanix/docker_factorio_server into dt_0.12.31 2016-04-29 15:48:27 -07:00
0b3a7bd84c Merge pull request #6 from dtandersen/0.12.31_update
updated to 0.12.31
2016-04-27 13:18:07 +02:00
a28d8315aa updated imagelayers.io badge url 2016-04-26 15:05:59 -07:00
14d1af4d9e updated dockerfile links 2016-04-26 15:01:32 -07:00
b8c0e42baa Merge branch '0.12.31_update' into dt_develop
# Conflicts:
#	Dockerfile
#	README.md
2016-04-26 14:44:56 -07:00
148c01eab0 updated to 0.12.31 2016-04-26 14:26:18 -07:00
99c79f7e64 Revert "Set version to 0.12.29"
This reverts commit 7e0718a332.
2016-04-26 13:51:29 +02:00
11f92f34d8 Set version to 0.12.29 2016-04-26 13:48:32 +02:00
186af111d9 Set Version to 0.12.30 2016-04-24 14:14:19 +02:00
b6f14800ab Set Version to 0.12.29 2016-04-24 14:13:51 +02:00
4a5504cdb6 Set Version to 0.12.28 2016-04-24 14:13:35 +02:00
0e8cb6c26c Set Version to 0.12.27 2016-04-24 14:13:14 +02:00
b950fe99c6 Set Version to 0.12.25 2016-04-24 14:12:44 +02:00
6ed85052ff Set Version to 0.12.25 2016-04-24 14:12:17 +02:00
30425c8d66 Set Version to 0.12.24 2016-04-24 14:11:45 +02:00
522a3a2e93 Trying to fix with alpine 2016-04-24 14:06:44 +02:00
e37cdcc508 Fixing some things 2016-04-24 13:42:15 +02:00
7babfe47ff Fixed typo 2016-04-24 13:36:37 +02:00
bfd2c5f600 Set version back to 0.12.30 2016-04-24 12:56:23 +02:00
3fc2e97f7e Set version to 0.12.29 2016-04-24 12:55:53 +02:00
d141764f44 Remove sha1sum 2016-04-24 12:54:12 +02:00
4a816ad5f9 Added feature alpine with ssl verification and sha1 verification of the image 2016-04-24 12:45:15 +02:00
d1aa470d25 Merge branch 'alpine' 2016-04-14 23:04:50 -07:00
70e936c7e3 how to see logs 2016-04-14 22:54:17 -07:00
f17e773885 formatted the word dockerfile as code 2016-04-14 22:50:29 -07:00
c8af86eaef reformat docs 2016-04-14 22:48:52 -07:00
dcac7d0c46 added versions to top 2016-04-14 22:45:25 -07:00
b6d1748deb added fancy bagde 2016-04-14 22:41:33 -07:00
e1e8ff07e6 added description of factorio 2016-04-14 22:37:25 -07:00
601ee80a47 Merge pull request #4 from dtandersen/autopausetypo2
Fixed spelling of FACTORIO
2016-04-15 07:37:17 +02:00
fd4ed925b2 point to dtandersen repo 2016-04-14 22:23:36 -07:00
2d1f625219 Merge branch 'readme' 2016-04-14 22:14:12 -07:00
7d5e58d4a0 re-enabled SSL security 2016-04-14 22:06:32 -07:00
c535246dac added CA root; removed domain cert 2016-04-14 22:05:59 -07:00
16959ea374 factorio ssl cert 2016-04-14 17:55:35 -07:00
8f6446f088 try using alpine images 2016-04-14 17:55:24 -07:00
65a32b3cbf Corrected a typo.
Merge branch 'autopausetypo2'

# Conflicts:
#	Dockerfile
2016-04-14 16:08:37 -07:00
7ca5892e5e corrected a typo 2016-04-14 16:04:06 -07:00
327fd1c925 Moved factorio link to the top 2016-04-14 16:02:34 -07:00
323718b631 combined ENVs to reduce layer count 2016-04-14 15:20:14 -07:00
8049134ed5 verify SHA1 checksum 2016-04-14 15:03:35 -07:00
0a35d754ec fixed spelling of FACTORIO 2016-04-14 14:36:34 -07:00
cf60f77d53 Merge pull request #2 from guyspronck/master
Updated version to 0.12.30
2016-04-07 10:23:16 +02:00
65315ccfa8 Updated Version number in README 2016-04-06 12:17:42 +02:00
e7ac99c855 Updated version in Dockerfile 2016-04-06 12:16:26 +02:00
7798e07daf Added some env variables to make it more clear 2016-03-28 09:14:53 +02:00
993ca2631c Add a todo 2016-03-27 20:52:16 +02:00
a0551876fa Removed todo as it is done 2016-03-27 19:25:16 +02:00
74a32021de Fixed typo in variable 2016-03-27 19:17:39 +02:00
545297c443 Fixed typo 2016-03-27 19:15:05 +02:00
a9fc7f32d9 Added no auto pause feature 2016-03-27 19:10:33 +02:00
fd2f656e57 Fixed if statement in options 2016-03-27 18:55:08 +02:00
d99ff47bbc Fixed small typo 2016-03-27 18:45:29 +02:00
b056148d75 Added dissalow_commands feature 2016-03-27 18:39:55 +02:00
dfb8b32a10 Refactor Dockerfile 2016-03-27 09:02:10 +02:00
78c79d8fe9 Fixed readme 2016-03-27 08:57:43 +02:00
aa587d172c Fixed readme 2016-03-27 08:56:09 +02:00
a4f5d9a10a Gave readme better readebility 2016-03-27 08:50:17 +02:00
09be8bf68a Add a todo 2016-03-27 08:23:46 +02:00
f589953648 Fixed typo in dockerfile 2016-03-26 18:52:56 +01:00
46d525bcf7 Added mods feature and refactored readme 2016-03-26 18:45:31 +01:00
115dc3b1a9 Made a small fix on autosave features 2016-03-26 18:04:55 +01:00
310cb82749 Fixed minor errors 2016-03-26 15:25:32 +01:00
308f7cad10 Added autosave feature 2016-03-26 10:49:27 +01:00
9044045dac corrected readme 2016-03-26 10:23:21 +01:00
a1e701df66 Added text in readme 2016-03-24 10:35:28 +01:00
87141b2835 Added a link in readme 2016-03-24 10:30:17 +01:00
a6476af82f Corrected small typo 2016-03-24 10:00:34 +01:00
12ec73be53 Added feature to take latest save 2016-03-24 09:43:21 +01:00
ef4c0132d4 Added current version 2016-03-24 09:42:04 +01:00
764b214723 Set version in readme 2016-03-24 08:39:16 +01:00
dcd07982a8 Set version to 0.12.29 2016-03-24 08:26:28 +01:00
7880bd9f65 Set version to 0.12.28 2016-03-23 09:12:59 +01:00
27fc3b97bc Set factorio in 0.1.27 2016-03-21 11:00:04 +01:00
ce1320100b Changed from ubuntu to debian so it would be lighter 2016-03-10 17:44:11 +01:00
3ea1619384 Changed readme 2016-03-10 11:35:35 +01:00
52bd19356f Made some minor correction on dockerfile 2016-03-10 11:01:15 +01:00
bc55163f5c Changed readme 2016-03-10 10:23:22 +01:00
5a4e0d8ebf Set factorio at 0.12.26 2016-03-06 17:48:32 +01:00
361bb94857 Looking to loose some weight 2016-03-05 14:13:05 +01:00
048d12ef75 Enriched readme 2016-03-04 15:50:01 +01:00
4d8c94a6c8 Fixed typo in dockerfile 2016-03-04 15:28:03 +01:00
fa1af6c03d Removed unsued command 2016-03-04 15:25:20 +01:00
d8b20e5531 Removed unsused command 2016-03-04 15:23:17 +01:00
bdb51f5020 Fixed tar issues and apt issues 2016-03-04 15:21:09 +01:00
87d1c4b0a3 Fixing tar issues 2016-03-04 15:15:28 +01:00
89ef301d3d Fixing tar issues 2016-03-04 14:36:44 +01:00
0960c7c371 Fixing some issues with tar 2016-03-04 14:35:05 +01:00
cc496ccaa0 Skipped certif verification 2016-03-04 14:29:43 +01:00
f9e62fe90d Added full path to docker file 2016-03-04 14:21:38 +01:00
94494299ee Get server from site and removed some files 2016-03-04 13:35:29 +01:00
677dc983e8 Testing docker build 2016-02-29 11:34:01 +01:00
8588fdd6fd Fixed typo 2016-02-26 15:03:32 +01:00
eb22619e44 Removed unused layer 2016-02-26 15:00:46 +01:00
6f33dd8444 Added dynamic creation of map only if needed 2016-02-26 14:59:01 +01:00
43af3aaf33 Initial commit 2016-02-26 11:09:47 +01:00
17 changed files with 206 additions and 45 deletions

28
0.13/Dockerfile Normal file
View File

@ -0,0 +1,28 @@
FROM frolvlad/alpine-glibc:alpine-3.4
MAINTAINER https://github.com/dtandersen/docker_factorio_server
COPY ./factorio.crt /opt/factorio.crt
ENV VERSION=0.13.20 \
SHA1=59ed0edb3f62f0f41a01fc291959b0a8b44cf631
RUN apk --no-cache add curl tini pwgen && \
curl -sSL --cacert /opt/factorio.crt \
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
EXPOSE 34197/udp 27015/tcp
COPY ./docker-entrypoint.sh /
ENTRYPOINT ["/sbin/tini", "--"]
CMD ["/docker-entrypoint.sh"]

1
0.13/build.sh Executable file
View File

@ -0,0 +1 @@
sudo docker build -t dtandersen/factorio:0.13-dev .

1
0.13/clean.sh Executable file
View File

@ -0,0 +1 @@
sudo rm -rf /tmp/factorio

35
0.13/docker-entrypoint.sh Executable file
View File

@ -0,0 +1,35 @@
#!/bin/sh -x
set -e
SAVES=/factorio/saves
CONFIG=/factorio/config
mkdir -p $SAVES
mkdir -p /factorio/mods
mkdir -p $CONFIG
if [ ! -f $CONFIG/rconpw ]; then
echo $(pwgen 15 1) > $CONFIG/rconpw
fi
if [ ! -f $CONFIG/server-settings.json ]; then
cp /opt/factorio/data/server-settings.example.json $CONFIG/server-settings.json
fi
if [ ! -f $CONFIG/map-gen-settings.json ]; then
cp /opt/factorio/data/map-gen-settings.example.json $CONFIG/map-gen-settings.json
fi
if ! find -L $SAVES -iname \*.zip -mindepth 1 -print | grep -q .; then
/opt/factorio/bin/x64/factorio \
--create $SAVES/_autosave1.zip \
--map-gen-settings $CONFIG/map-gen-settings.json
fi
exec /opt/factorio/bin/x64/factorio \
--port 34197 \
--start-server-load-latest \
--server-settings $CONFIG/server-settings.json \
--rcon-port 27015 \
--rcon-password "$(cat $CONFIG/rconpw)"

5
0.13/run.sh Executable file
View File

@ -0,0 +1,5 @@
sudo docker run --rm -it \
-v /tmp/factorio:/factorio \
--name factorio \
dtandersen/factorio:0.13-dev "$@"
find /tmp/factorio -type f

View File

@ -2,23 +2,19 @@ FROM frolvlad/alpine-glibc:alpine-3.4
MAINTAINER https://github.com/dtandersen/docker_factorio_server
COPY ./factorio.crt /opt/factorio.crt
ENV VERSION=0.14.23 \
SHA1=6ef84341c6fc1cf45cfdd6acc8468aaa117b9e8a
ENV VERSION=0.14.16 \
SHA1=e27c658bf8a7579b662a1c34815daa223e57bc90
RUN apk --update --no-cache add bash curl && \
curl -sSL --cacert /opt/factorio.crt \
https://www.factorio.com/get-download/$VERSION/headless/linux64 \
RUN mkdir /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 --no-cache del curl && \
apk del curl && \
ln -s /factorio/saves /opt/factorio/saves && \
ln -s /factorio/mods /opt/factorio/mods && \
ln -s /factorio/config/server-settings.json /opt/factorio/data/server-settings.json && \
ln -s /factorio/config/map-gen-settings.json /opt/factorio/data/map-gen-settings.json
ln -s /factorio/mods /opt/factorio/mods
VOLUME /factorio
@ -26,4 +22,5 @@ EXPOSE 34197/udp 27015/tcp
COPY ./docker-entrypoint.sh /
ENTRYPOINT ["/sbin/tini", "--"]
CMD ["/docker-entrypoint.sh"]

2
0.14/build.sh Normal file → Executable file
View File

@ -1 +1 @@
sudo docker build -t factorio .
sudo docker build --no-cache -t factorio .

1
0.14/clean.sh Executable file
View File

@ -0,0 +1 @@
sudo rm -rf /tmp/factorio

29
0.14/docker-entrypoint.sh Normal file → Executable file
View File

@ -1,28 +1,35 @@
#!/bin/bash -x
#!/bin/sh -x
set -e
SAVES=/opt/factorio/saves
SAVES=/factorio/saves
CONFIG=/factorio/config
mkdir -p /factorio/saves
mkdir -p $SAVES
mkdir -p /factorio/mods
mkdir -p /factorio/config
mkdir -p $CONFIG
if [ ! -f /factorio/config/server-settings.json ]; then
cp /opt/factorio/data/server-settings.example.json /factorio/config/server-settings.json
if [ ! -f $CONFIG/rconpw ]; then
echo $(pwgen 15 1) > $CONFIG/rconpw
fi
if [ ! -f /factorio/config/map-gen-settings.json ]; then
cp /opt/factorio/data/map-gen-settings.example.json /factorio/config/map-gen-settings.json
if [ ! -f $CONFIG/server-settings.json ]; then
cp /opt/factorio/data/server-settings.example.json $CONFIG/server-settings.json
fi
if [ ! -f $CONFIG/map-gen-settings.json ]; then
cp /opt/factorio/data/map-gen-settings.example.json $CONFIG/map-gen-settings.json
fi
if ! find -L $SAVES -iname \*.zip -mindepth 1 -print | grep -q .; then
/opt/factorio/bin/x64/factorio \
--create $SAVES/save.zip \
--map-gen-settings /opt/factorio/data/map-gen-settings.json
--create $SAVES/_autosave1.zip \
--map-gen-settings $CONFIG/map-gen-settings.json
fi
exec /opt/factorio/bin/x64/factorio \
--port 34197 \
--start-server-load-latest \
--server-settings /opt/factorio/data/server-settings.json
--server-settings $CONFIG/server-settings.json \
--rcon-port 27015 \
--rcon-password "$(cat $CONFIG/rconpw)"

6
0.14/run.sh Normal file → Executable file
View File

@ -1,9 +1,5 @@
#mkdir -p /tmp/factorio/config
#mkdir -p /tmp/factorio/mods
#mkdir -p /tmp/factorio/saves
#cp -n server-settings.example.json /tmp/factorio/config/server-settings.json
#cp -n map-gen-settings.example.json /tmp/factorio/config/map-gen-settings.json
sudo docker run --rm -it \
-v /tmp/factorio:/factorio \
--name factorio \
factorio "$@"
find /tmp/factorio -type f

27
0.15/Dockerfile Normal file
View File

@ -0,0 +1,27 @@
FROM frolvlad/alpine-glibc:alpine-3.5
MAINTAINER https://github.com/dtandersen/docker_factorio_server
ENV PORT=34197 \
VERSION=0.15.0 \
SHA1=e7681725203afeb0645371c695989129076e51bc
RUN mkdir /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.xz && \
echo "$SHA1 /tmp/factorio_headless_x64_$VERSION.tar.xz" | sha1sum -c && \
tar xf /tmp/factorio_headless_x64_$VERSION.tar.xz --directory /opt && \
rm /tmp/factorio_headless_x64_$VERSION.tar.xz && \
apk del curl && \
ln -s /factorio/saves /opt/factorio/saves && \
ln -s /factorio/mods /opt/factorio/mods
VOLUME /factorio
EXPOSE $PORT/udp 27015/tcp
COPY ./docker-entrypoint.sh /
ENTRYPOINT ["/sbin/tini", "--"]
CMD ["/docker-entrypoint.sh"]

1
0.15/build.sh Executable file
View File

@ -0,0 +1 @@
sudo docker build --no-cache -t factorio .

1
0.15/clean.sh Executable file
View File

@ -0,0 +1 @@
sudo rm -rf /tmp/factorio

35
0.15/docker-entrypoint.sh Executable file
View File

@ -0,0 +1,35 @@
#!/bin/sh -x
set -e
SAVES=/factorio/saves
CONFIG=/factorio/config
mkdir -p $SAVES
mkdir -p /factorio/mods
mkdir -p $CONFIG
if [ ! -f $CONFIG/rconpw ]; then
echo $(pwgen 15 1) > $CONFIG/rconpw
fi
if [ ! -f $CONFIG/server-settings.json ]; then
cp /opt/factorio/data/server-settings.example.json $CONFIG/server-settings.json
fi
if [ ! -f $CONFIG/map-gen-settings.json ]; then
cp /opt/factorio/data/map-gen-settings.example.json $CONFIG/map-gen-settings.json
fi
if ! find -L $SAVES -iname \*.zip -mindepth 1 -print | grep -q .; then
/opt/factorio/bin/x64/factorio \
--create $SAVES/_autosave1.zip \
--map-gen-settings $CONFIG/map-gen-settings.json
fi
exec /opt/factorio/bin/x64/factorio \
--port $PORT \
--start-server-load-latest \
--server-settings $CONFIG/server-settings.json \
--rcon-port 27015 \
--rcon-password "$(cat $CONFIG/rconpw)"

5
0.15/run.sh Executable file
View File

@ -0,0 +1,5 @@
sudo docker run --rm -it \
-v /tmp/factorio:/factorio \
--name factorio \
factorio "$@"
find /tmp/factorio -type f

View File

@ -1,7 +1,15 @@
# Factorio [![Docker Pulls](https://img.shields.io/docker/pulls/dtandersen/factorio.svg)](https://hub.docker.com/r/dtandersen/factorio/) [![Docker Stars](https://img.shields.io/docker/stars/dtandersen/factorio.svg)](https://hub.docker.com/r/dtandersen/factorio/)
* `0.14.16`, `0.14`, `latest` [(0.14.16/Dockerfile)](https://github.com/dtandersen/docker_factorio_server/blob/0.14.16/Dockerfile)
* `0.15.0`, `0.15`, `latest` [(0.15/Dockerfile)](https://github.com/dtandersen/docker_factorio_server/blob/master/0.15/Dockerfile)
* `0.14.23`, `0.14`, `stable` [(0.14/Dockerfile)](https://github.com/dtandersen/docker_factorio_server/blob/master/0.14/Dockerfile)
* `0.13.20`, `0.13` [(0.13/Dockerfile)](https://github.com/dtandersen/docker_factorio_server/blob/master/0.13/Dockerfile)
*Tag philosophy*
* `latest` - highest version: may be experimental.
* `stable` - highest version declared stable.
* `0.x` - highest version in a branch: may be experimental.
* `0.x.y` - a specific version.
# What is Factorio?
@ -21,14 +29,19 @@ NOTE: This is only the server. The game is available at [factorio.com](https://w
Run the server to create the necessary folder structure and configuration files. For this example data is stored in `/tmp/factorio`.
```
docker run -d -P -v /tmp/factorio:/factorio --name factorio dtandersen/factorio
docker run -d -p 34197:34197/udp -p 27015:27015/tcp \
-v /tmp/factorio:/factorio \
--name factorio \
--restart=always \
dtandersen/factorio
```
For those new to Docker, here is an explanation of the options:
* `-d` - Run as a daemon ("detached").
* `-P` - Expose all ports.
* `-p` - Expose ports.
* `-v` - Mount `/tmp/factorio` on the local file system to `/factorio` in the container.
* `--restart` - Restart the server if it crashes and at system start
* `--name` - Name the container "factorio" (otherwise it has a funny random name).
Check the logs to see what happened:
@ -54,9 +67,9 @@ Try to connect to the server. Check the logs if it isn't working.
## Saves
A new map named `save.zip` is generated the first time the server is started. The `map-gen-settings.json` file in `/tmp/factorio/config` is used for the map settings. On subsequent runs the newest save is used.
A new map named `_autosave1.zip` is generated the first time the server is started. The `map-gen-settings.json` file in `/tmp/factorio/config` is used for the map settings. On subsequent runs the newest save is used.
To load an old save stop the server and run the command `touch oldsave.zip`. This resets the date. Then restart the server.
To load an old save stop the server and run the command `touch oldsave.zip`. This resets the date. Then restart the server. Another option is to delete all saves except one.
To generate a new map stop the server, delete all of the saves and restart the server.
@ -66,16 +79,20 @@ To generate a new map stop the server, delete all of the saves and restart the s
Copy mods into the mods folder and restart the server.
## Remote Console
## RCON
RCON is currently disabled.
Set the RCON password in the `rconpw` file. A random password is generated if `rconpw` doesn't exist.
To change the password stop the server, modify `rconpw`, and restart the server.
To "disable" RCON don't expose port 27015, i.e. start the server with `-p 34197:34197/udp` instead of `-P`. RCON still runs, but nobody is able to connect to it.
# Container Details
The philosophy is to keep things simple.
The philosophy is to [keep it simple](http://wiki.c2.com/?KeepItSimple).
* Self-configure to a minimal working state.
* The server should bootstrap itself.
* Prefer configuration files over environment variables.
* Use one volume for data.
@ -86,13 +103,13 @@ To keep things simple, the container uses a single volume mounted at `/factorio`
factorio
|-- config
| |-- server-settings.json
| +-- map-gen-settings.json
| |-- map-gen-settings.json
| |-- rconpw
| `-- server-settings.json
|-- mods
| |-- fancymod.zip
+-- saves
|-- _autosave1.zip
+-- save.zip
| `-- fancymod.zip
`-- saves
`-- _autosave1.zip
## Ports
@ -103,9 +120,13 @@ To keep things simple, the container uses a single volume mounted at `/factorio`
## Troubleshooting
**Server is listed in the in-game server browser, but users can't connect**
**My server is listed in the server browser, but nobody can connect**
Run Docker with the `--userland-proxy=false` option. The source UDP port is changed by docker-proxy when the server pings "pingpong" servers. See [Incorrect port detected for docker hosted server](https://forums.factorio.com/viewtopic.php?f=49&t=35255).
Check the logs. If there is the line `Own address is RIGHT IP:WRONG PORT`, then this could be caused by the Docker proxy. If the the IP and port is correct it's probably a port forwarding or firewall issue instead.
By default, Docker routes traffic through a proxy. The proxy changes the source UDP port, so the wrong port is detected. See the forum post *[Incorrect port detected for docker hosted server](https://forums.factorio.com/viewtopic.php?f=49&t=35255)* for details.
To fix the incorrect port, start the Docker service with the `--userland-proxy=false` switch. Docker will route traffic with iptables rules instead of a proxy. Add the switch to the `DOCKER_OPTS` environment variable or `ExecStart` in the Docker systemd service definition. The specifics vary by operating system.
# Credits