mirror of
https://github.com/factoriotools/factorio-docker.git
synced 2025-07-01 22:48:26 +02:00
Compare commits
75 Commits
Author | SHA1 | Date | |
---|---|---|---|
ecc54400ba | |||
eea1d550f2 | |||
730b2c334b | |||
288f080ebc | |||
2ffac3c4a8 | |||
88fed15bb4 | |||
968fb8a3bd | |||
9d642d8fb0 | |||
4c3818b27c | |||
a6d480d695 | |||
fce556160a | |||
4727f62a8f | |||
64cbf48082 | |||
dd6bc76827 | |||
b7108c64cb | |||
2f53d7e03c | |||
f97eee5f83 | |||
0e1808c3f5 | |||
629a3fade3 | |||
3f88bcbf52 | |||
fb36aaa0d9 | |||
e22ce8989b | |||
29f3e54adf | |||
148de89c52 | |||
4fc8da6581 | |||
e6290605c7 | |||
662372a1ba | |||
82f6bdf865 | |||
c9f4510195 | |||
6602c7cf7f | |||
8be7b47c07 | |||
717275198e | |||
d68ec4fdd4 | |||
47464e0b9b | |||
23fdd4ed09 | |||
e7a6bddc1f | |||
3d9e2999b6 | |||
7b33b9f6e8 | |||
066c61fb85 | |||
303fbb5d97 | |||
3f4fd9e348 | |||
504ebfde23 | |||
f982370229 | |||
51d3845af7 | |||
889c10bd48 | |||
46f397a9bb | |||
988aa08a73 | |||
ff6f4b6cd0 | |||
ea426ca0f4 | |||
4ecb1dcb6b | |||
3ef8c5309e | |||
70c402b9dd | |||
2b434ff08f | |||
49c5dff898 | |||
35d22efc67 | |||
f1b75ac034 | |||
fbb550916c | |||
1d8be250e9 | |||
d90f45bd41 | |||
2b201fea5b | |||
b0a64e5939 | |||
ef24dad0bf | |||
69a52f2c19 | |||
902ad53bd3 | |||
bd2af80a52 | |||
de9fb52d48 | |||
c0157e19ee | |||
8e7bca222a | |||
3e7c79ab74 | |||
979326ebf6 | |||
d5ac333364 | |||
e941e9a2c8 | |||
6fece0c9e3 | |||
10d000408c | |||
d59fd0844a |
@ -1,28 +0,0 @@
|
|||||||
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,0 @@
|
|||||||
sudo docker build -t dtandersen/factorio:0.13-dev .
|
|
@ -1 +0,0 @@
|
|||||||
sudo rm -rf /tmp/factorio
|
|
@ -1,35 +0,0 @@
|
|||||||
#!/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)"
|
|
@ -1,92 +0,0 @@
|
|||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIGCDCCA/CgAwIBAgIQKy5u6tl1NmwUim7bo3yMBzANBgkqhkiG9w0BAQwFADCB
|
|
||||||
hTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G
|
|
||||||
A1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNV
|
|
||||||
BAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTQwMjEy
|
|
||||||
MDAwMDAwWhcNMjkwMjExMjM1OTU5WjCBkDELMAkGA1UEBhMCR0IxGzAZBgNVBAgT
|
|
||||||
EkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMR
|
|
||||||
Q09NT0RPIENBIExpbWl0ZWQxNjA0BgNVBAMTLUNPTU9ETyBSU0EgRG9tYWluIFZh
|
|
||||||
bGlkYXRpb24gU2VjdXJlIFNlcnZlciBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEP
|
|
||||||
ADCCAQoCggEBAI7CAhnhoFmk6zg1jSz9AdDTScBkxwtiBUUWOqigwAwCfx3M28Sh
|
|
||||||
bXcDow+G+eMGnD4LgYqbSRutA776S9uMIO3Vzl5ljj4Nr0zCsLdFXlIvNN5IJGS0
|
|
||||||
Qa4Al/e+Z96e0HqnU4A7fK31llVvl0cKfIWLIpeNs4TgllfQcBhglo/uLQeTnaG6
|
|
||||||
ytHNe+nEKpooIZFNb5JPJaXyejXdJtxGpdCsWTWM/06RQ1A/WZMebFEh7lgUq/51
|
|
||||||
UHg+TLAchhP6a5i84DuUHoVS3AOTJBhuyydRReZw3iVDpA3hSqXttn7IzW3uLh0n
|
|
||||||
c13cRTCAquOyQQuvvUSH2rnlG51/ruWFgqUCAwEAAaOCAWUwggFhMB8GA1UdIwQY
|
|
||||||
MBaAFLuvfgI9+qbxPISOre44mOzZMjLUMB0GA1UdDgQWBBSQr2o6lFoL2JDqElZz
|
|
||||||
30O0Oija5zAOBgNVHQ8BAf8EBAMCAYYwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNV
|
|
||||||
HSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwGwYDVR0gBBQwEjAGBgRVHSAAMAgG
|
|
||||||
BmeBDAECATBMBgNVHR8ERTBDMEGgP6A9hjtodHRwOi8vY3JsLmNvbW9kb2NhLmNv
|
|
||||||
bS9DT01PRE9SU0FDZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNybDBxBggrBgEFBQcB
|
|
||||||
AQRlMGMwOwYIKwYBBQUHMAKGL2h0dHA6Ly9jcnQuY29tb2RvY2EuY29tL0NPTU9E
|
|
||||||
T1JTQUFkZFRydXN0Q0EuY3J0MCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5jb21v
|
|
||||||
ZG9jYS5jb20wDQYJKoZIhvcNAQEMBQADggIBAE4rdk+SHGI2ibp3wScF9BzWRJ2p
|
|
||||||
mj6q1WZmAT7qSeaiNbz69t2Vjpk1mA42GHWx3d1Qcnyu3HeIzg/3kCDKo2cuH1Z/
|
|
||||||
e+FE6kKVxF0NAVBGFfKBiVlsit2M8RKhjTpCipj4SzR7JzsItG8kO3KdY3RYPBps
|
|
||||||
P0/HEZrIqPW1N+8QRcZs2eBelSaz662jue5/DJpmNXMyYE7l3YphLG5SEXdoltMY
|
|
||||||
dVEVABt0iN3hxzgEQyjpFv3ZBdRdRydg1vs4O2xyopT4Qhrf7W8GjEXCBgCq5Ojc
|
|
||||||
2bXhc3js9iPc0d1sjhqPpepUfJa3w/5Vjo1JXvxku88+vZbrac2/4EjxYoIQ5QxG
|
|
||||||
V/Iz2tDIY+3GH5QFlkoakdH368+PUq4NCNk+qKBR6cGHdNXJ93SrLlP7u3r7l+L4
|
|
||||||
HyaPs9Kg4DdbKDsx5Q5XLVq4rXmsXiBmGqW5prU5wfWYQ//u+aen/e7KJD2AFsQX
|
|
||||||
j4rBYKEMrltDR5FL1ZoXX/nUh8HCjLfn4g8wGTeGrODcQgPmlKidrv0PJFGUzpII
|
|
||||||
0fxQ8ANAe4hZ7Q7drNJ3gjTcBpUC2JD5Leo31Rpg0Gcg19hCC0Wvgmje3WYkN5Ap
|
|
||||||
lBlGGSW4gNfL1IYoakRwJiNiqZ+Gb7+6kHDSVneFeO/qJakXzlByjAA6quPbYzSf
|
|
||||||
+AZxAeKCINT+b72x
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIFdDCCBFygAwIBAgIQJ2buVutJ846r13Ci/ITeIjANBgkqhkiG9w0BAQwFADBv
|
|
||||||
MQswCQYDVQQGEwJTRTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFk
|
|
||||||
ZFRydXN0IEV4dGVybmFsIFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBF
|
|
||||||
eHRlcm5hbCBDQSBSb290MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEwNDgzOFow
|
|
||||||
gYUxCzAJBgNVBAYTAkdCMRswGQYDVQQIExJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAO
|
|
||||||
BgNVBAcTB1NhbGZvcmQxGjAYBgNVBAoTEUNPTU9ETyBDQSBMaW1pdGVkMSswKQYD
|
|
||||||
VQQDEyJDT01PRE8gUlNBIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkq
|
|
||||||
hkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAkehUktIKVrGsDSTdxc9EZ3SZKzejfSNw
|
|
||||||
AHG8U9/E+ioSj0t/EFa9n3Byt2F/yUsPF6c947AEYe7/EZfH9IY+Cvo+XPmT5jR6
|
|
||||||
2RRr55yzhaCCenavcZDX7P0N+pxs+t+wgvQUfvm+xKYvT3+Zf7X8Z0NyvQwA1onr
|
|
||||||
ayzT7Y+YHBSrfuXjbvzYqOSSJNpDa2K4Vf3qwbxstovzDo2a5JtsaZn4eEgwRdWt
|
|
||||||
4Q08RWD8MpZRJ7xnw8outmvqRsfHIKCxH2XeSAi6pE6p8oNGN4Tr6MyBSENnTnIq
|
|
||||||
m1y9TBsoilwie7SrmNnu4FGDwwlGTm0+mfqVF9p8M1dBPI1R7Qu2XK8sYxrfV8g/
|
|
||||||
vOldxJuvRZnio1oktLqpVj3Pb6r/SVi+8Kj/9Lit6Tf7urj0Czr56ENCHonYhMsT
|
|
||||||
8dm74YlguIwoVqwUHZwK53Hrzw7dPamWoUi9PPevtQ0iTMARgexWO/bTouJbt7IE
|
|
||||||
IlKVgJNp6I5MZfGRAy1wdALqi2cVKWlSArvX31BqVUa/oKMoYX9w0MOiqiwhqkfO
|
|
||||||
KJwGRXa/ghgntNWutMtQ5mv0TIZxMOmm3xaG4Nj/QN370EKIf6MzOi5cHkERgWPO
|
|
||||||
GHFrK+ymircxXDpqR+DDeVnWIBqv8mqYqnK8V0rSS527EPywTEHl7R09XiidnMy/
|
|
||||||
s1Hap0flhFMCAwEAAaOB9DCB8TAfBgNVHSMEGDAWgBStvZh6NLQm9/rEJlTvA73g
|
|
||||||
JMtUGjAdBgNVHQ4EFgQUu69+Aj36pvE8hI6t7jiY7NkyMtQwDgYDVR0PAQH/BAQD
|
|
||||||
AgGGMA8GA1UdEwEB/wQFMAMBAf8wEQYDVR0gBAowCDAGBgRVHSAAMEQGA1UdHwQ9
|
|
||||||
MDswOaA3oDWGM2h0dHA6Ly9jcmwudXNlcnRydXN0LmNvbS9BZGRUcnVzdEV4dGVy
|
|
||||||
bmFsQ0FSb290LmNybDA1BggrBgEFBQcBAQQpMCcwJQYIKwYBBQUHMAGGGWh0dHA6
|
|
||||||
Ly9vY3NwLnVzZXJ0cnVzdC5jb20wDQYJKoZIhvcNAQEMBQADggEBAGS/g/FfmoXQ
|
|
||||||
zbihKVcN6Fr30ek+8nYEbvFScLsePP9NDXRqzIGCJdPDoCpdTPW6i6FtxFQJdcfj
|
|
||||||
Jw5dhHk3QBN39bSsHNA7qxcS1u80GH4r6XnTq1dFDK8o+tDb5VCViLvfhVdpfZLY
|
|
||||||
Uspzgb8c8+a4bmYRBbMelC1/kZWSWfFMzqORcUx8Rww7Cxn2obFshj5cqsQugsv5
|
|
||||||
B5a6SE2Q8pTIqXOi6wZ7I53eovNNVZ96YUWYGGjHXkBrI/V5eu+MtWuLt29G9Hvx
|
|
||||||
PUsE2JOAWVrgQSQdso8VYFhH2+9uRv0V9dlfmrPb2LjkQLPNlzmuhbsdjrzch5vR
|
|
||||||
pu/xO28QOG8=
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEU
|
|
||||||
MBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFs
|
|
||||||
IFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290
|
|
||||||
MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEwNDgzOFowbzELMAkGA1UEBhMCU0Ux
|
|
||||||
FDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRUcnVzdCBFeHRlcm5h
|
|
||||||
bCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0EgUm9v
|
|
||||||
dDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvt
|
|
||||||
H7xsD821+iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9
|
|
||||||
uMq/NzgtHj6RQa1wVsfwTz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzX
|
|
||||||
mk6vBbOmcZSccbNQYArHE504B4YCqOmoaSYYkKtMsE8jqzpPhNjfzp/haW+710LX
|
|
||||||
a0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy2xSoRcRdKn23tNbE7qzN
|
|
||||||
E0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv77+ldU9U0
|
|
||||||
WicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYD
|
|
||||||
VR0PBAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0
|
|
||||||
Jvf6xCZU7wO94CTLVBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRU
|
|
||||||
cnVzdCBBQjEmMCQGA1UECxMdQWRkVHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsx
|
|
||||||
IjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENBIFJvb3SCAQEwDQYJKoZIhvcN
|
|
||||||
AQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZlj7DYd7usQWxH
|
|
||||||
YINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5
|
|
||||||
6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvC
|
|
||||||
Nr4TDea9Y355e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEX
|
|
||||||
c4g/VhsxOBi0cQ+azcgOno4uG+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5a
|
|
||||||
mnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ=
|
|
||||||
-----END CERTIFICATE-----
|
|
@ -1,5 +0,0 @@
|
|||||||
sudo docker run --rm -it \
|
|
||||||
-v /tmp/factorio:/factorio \
|
|
||||||
--name factorio \
|
|
||||||
dtandersen/factorio:0.13-dev "$@"
|
|
||||||
find /tmp/factorio -type f
|
|
@ -9,16 +9,18 @@ ARG PGID=845
|
|||||||
|
|
||||||
ENV PORT=34197 \
|
ENV PORT=34197 \
|
||||||
RCON_PORT=27015 \
|
RCON_PORT=27015 \
|
||||||
VERSION=0.17.1 \
|
VERSION=0.17.33 \
|
||||||
SHA1=cab0b48a5ddb1870bab2c07cc6ad5726097c1fc5 \
|
SHA1=3b918844a26dfac1b154622610607110fa341bd0 \
|
||||||
SAVES=/factorio/saves \
|
SAVES=/factorio/saves \
|
||||||
CONFIG=/factorio/config \
|
CONFIG=/factorio/config \
|
||||||
MODS=/factorio/mods \
|
MODS=/factorio/mods \
|
||||||
SCENARIOS=/factorio/scenarios \
|
SCENARIOS=/factorio/scenarios \
|
||||||
SCRIPTOUTPUT=/factorio/script-output
|
SCRIPTOUTPUT=/factorio/script-output \
|
||||||
|
PUID=$PUID \
|
||||||
|
PGID=$PGID
|
||||||
|
|
||||||
RUN mkdir -p /opt /factorio && \
|
RUN mkdir -p /opt /factorio && \
|
||||||
apk add --update --no-cache pwgen su-exec && \
|
apk add --update --no-cache pwgen su-exec binutils gettext libintl shadow && \
|
||||||
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 \
|
||||||
-o /tmp/factorio_headless_x64_$VERSION.tar.xz && \
|
-o /tmp/factorio_headless_x64_$VERSION.tar.xz && \
|
||||||
|
@ -7,5 +7,6 @@ services:
|
|||||||
- "27015:27015/tcp"
|
- "27015:27015/tcp"
|
||||||
volumes:
|
volumes:
|
||||||
- /opt/factorio:/factorio
|
- /opt/factorio:/factorio
|
||||||
# user: 845:845
|
# environment:
|
||||||
# user: 1000:1000
|
# - PUID=1000
|
||||||
|
# - PGID=1000
|
||||||
|
@ -22,9 +22,7 @@ if [ ! -f $CONFIG/server-settings.json ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if [ ! -f $CONFIG/map-gen-settings.json ]; then
|
if [ ! -f $CONFIG/map-gen-settings.json ]; then
|
||||||
# TODO: Need a valid map-gen-settings.json
|
cp /opt/factorio/data/map-gen-settings.example.json $CONFIG/map-gen-settings.json
|
||||||
# cp /opt/factorio/data/map-gen-settings.example.json $CONFIG/map-gen-settings.json
|
|
||||||
echo "{}" > $CONFIG/map-gen-settings.json
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ ! -f $CONFIG/map-settings.json ]; then
|
if [ ! -f $CONFIG/map-settings.json ]; then
|
||||||
@ -36,21 +34,27 @@ if find -L $SAVES -iname \*.tmp.zip -mindepth 1 -print | grep -q .; then
|
|||||||
rm -f $SAVES/*.tmp.zip
|
rm -f $SAVES/*.tmp.zip
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ "$(id -u)" = '0' ]; then
|
||||||
|
# Update the User and Group ID based on the PUID/PGID variables
|
||||||
|
usermod -o -u $PUID factorio
|
||||||
|
groupmod -o -g $PGID factorio
|
||||||
|
# Take ownership of factorio data if running as root
|
||||||
|
chown -R factorio:factorio $FACTORIO_VOL
|
||||||
|
# Make sure we own temp
|
||||||
|
#mkdir -p /opt/factorio/temp
|
||||||
|
#chown -R factorio:factorio /opt/factorio/temp
|
||||||
|
# Drop to the factorio user
|
||||||
|
SU_EXEC="su-exec factorio"
|
||||||
|
fi
|
||||||
|
|
||||||
if ! find -L $SAVES -iname \*.zip -mindepth 1 -print | grep -q .; then
|
if ! find -L $SAVES -iname \*.zip -mindepth 1 -print | grep -q .; then
|
||||||
# Generate a new map if no save ZIPs exist
|
# Generate a new map if no save ZIPs exist
|
||||||
/opt/factorio/bin/x64/factorio \
|
${SU_EXEC} /opt/factorio/bin/x64/factorio \
|
||||||
--create $SAVES/_autosave1.zip \
|
--create $SAVES/_autosave1.zip \
|
||||||
--map-gen-settings $CONFIG/map-gen-settings.json \
|
--map-gen-settings $CONFIG/map-gen-settings.json \
|
||||||
--map-settings $CONFIG/map-settings.json
|
--map-settings $CONFIG/map-settings.json
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$(id -u)" = '0' ]; then
|
|
||||||
# Take ownership of factorio data if running as root
|
|
||||||
chown -R factorio:factorio $FACTORIO_VOL
|
|
||||||
# We want to drop to the factorio user
|
|
||||||
SU_EXEC="su-exec factorio"
|
|
||||||
fi
|
|
||||||
|
|
||||||
exec ${SU_EXEC} /opt/factorio/bin/x64/factorio \
|
exec ${SU_EXEC} /opt/factorio/bin/x64/factorio \
|
||||||
--port $PORT \
|
--port $PORT \
|
||||||
--start-server-load-latest \
|
--start-server-load-latest \
|
||||||
@ -60,7 +64,6 @@ exec ${SU_EXEC} /opt/factorio/bin/x64/factorio \
|
|||||||
--server-whitelist $CONFIG/server-whitelist.json \
|
--server-whitelist $CONFIG/server-whitelist.json \
|
||||||
--use-server-whitelist \
|
--use-server-whitelist \
|
||||||
--server-adminlist $CONFIG/server-adminlist.json \
|
--server-adminlist $CONFIG/server-adminlist.json \
|
||||||
--server-banlist $CONFIG/server-banlist.json \
|
|
||||||
--rcon-password "$(cat $CONFIG/rconpw)" \
|
--rcon-password "$(cat $CONFIG/rconpw)" \
|
||||||
--server-id /factorio/config/server-id.json \
|
--server-id /factorio/config/server-id.json \
|
||||||
"$@"
|
"$@"
|
||||||
|
48
README.md
48
README.md
@ -1,6 +1,6 @@
|
|||||||
# Factorio [](https://microbadger.com/images/dtandersen/factorio "Get your own image badge on microbadger.com") [](https://hub.docker.com/r/dtandersen/factorio/) [](https://hub.docker.com/r/dtandersen/factorio/)
|
# Factorio [](https://microbadger.com/images/dtandersen/factorio "Get your own image badge on microbadger.com") [](https://hub.docker.com/r/dtandersen/factorio/) [](https://hub.docker.com/r/dtandersen/factorio/)
|
||||||
|
|
||||||
* `0.17.1`, `0.17`, `latest` [(0.17/Dockerfile)](https://github.com/dtandersen/docker_factorio_server/blob/master/0.17/Dockerfile)
|
* `0.17.33`, `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)
|
||||||
@ -182,6 +182,31 @@ Create file `config/server-adminlist.json` and add the adminlisted users.
|
|||||||
"friend"
|
"friend"
|
||||||
]
|
]
|
||||||
|
|
||||||
|
## Customize configuration files (0.17.x+)
|
||||||
|
|
||||||
|
Out-of-the box, factorio does not support environment variables inside the configuration files. A workaround is the usage of `envsubst` which generates the configuration files dynamically during startup from environment variables set in docker-compose:
|
||||||
|
|
||||||
|
Example which replaces the server-settings.json:
|
||||||
|
|
||||||
|
|
||||||
|
factorio_1:
|
||||||
|
image: dtanders/factorio
|
||||||
|
ports:
|
||||||
|
- "34197:34197/udp"
|
||||||
|
volumes:
|
||||||
|
- /opt/factorio:/factorio
|
||||||
|
- ./server-settings.json:/server-settings.json
|
||||||
|
environment:
|
||||||
|
- INSTANCE_NAME=Your Instance's Name
|
||||||
|
- INSTANCE_DESC=Your Instance's Description
|
||||||
|
entrypoint: /bin/sh -c "mkdir -p /factorio/config && envsubst < /server-settings.json > /factorio/config/server-settings.json && exec /docker-entrypoint.sh"
|
||||||
|
|
||||||
|
The `server-settings.json` file may then contain the variable references like this:
|
||||||
|
|
||||||
|
"name": "${INSTANCE_NAME}",
|
||||||
|
"description": "${INSTANCE_DESC}",
|
||||||
|
|
||||||
|
|
||||||
# Container Details
|
# Container Details
|
||||||
|
|
||||||
The philosophy is to [keep it simple](http://wiki.c2.com/?KeepItSimple).
|
The philosophy is to [keep it simple](http://wiki.c2.com/?KeepItSimple).
|
||||||
@ -195,20 +220,22 @@ The philosophy is to [keep it simple](http://wiki.c2.com/?KeepItSimple).
|
|||||||
|
|
||||||
To keep things simple, the container uses a single volume mounted at `/factorio`. This volume stores configuration, mods, and saves.
|
To keep things simple, the container uses a single volume mounted at `/factorio`. This volume stores configuration, mods, and saves.
|
||||||
|
|
||||||
|
The files in this volume should be owned by the factorio user, uid 845.
|
||||||
|
|
||||||
factorio
|
factorio
|
||||||
|-- config
|
|-- config
|
||||||
| |-- map-gen-settings.json
|
| |-- map-gen-settings.json
|
||||||
|
| |-- map-settings.json
|
||||||
| |-- rconpw
|
| |-- rconpw
|
||||||
| |-- server-settings.json
|
| |-- server-adminlist.json
|
||||||
| |-- server-whitelist.json
|
|
||||||
| |-- server-banlist.json
|
| |-- server-banlist.json
|
||||||
| `-- server-adminlist.json
|
| |-- server-settings.json
|
||||||
|
| `-- server-whitelist.json
|
||||||
|-- mods
|
|-- mods
|
||||||
| `-- fancymod.zip
|
| `-- fancymod.zip
|
||||||
`-- saves
|
`-- saves
|
||||||
`-- _autosave1.zip
|
`-- _autosave1.zip
|
||||||
|
|
||||||
|
|
||||||
## Docker Compose
|
## Docker Compose
|
||||||
|
|
||||||
[Docker Compose](https://docs.docker.com/compose/install/) is an easy way to run Docker containers.
|
[Docker Compose](https://docs.docker.com/compose/install/) is an easy way to run Docker containers.
|
||||||
@ -280,17 +307,17 @@ sudo docker run -d \
|
|||||||
dtandersen/factorio
|
dtandersen/factorio
|
||||||
```
|
```
|
||||||
|
|
||||||
VirtualBox users must enable Bridged networking in order for the host to be assigned an internal network IP. Enable Bridged networking in Vagrant with:
|
## Vagrant
|
||||||
|
|
||||||
|
[Vagrant](https://www.vagrantup.com/) is a easy way to setup a virtual machine (VM) to run Docker. The [Factorio Vagrant box repository](https://github.com/dtandersen/factorio-lan-vagrant) contains a sample Vagrantfile.
|
||||||
|
|
||||||
|
For LAN games the VM needs an internal IP in order for clients to connect. One way to do this is with a public network. The VM uses DHCP to acquire an IP address. The VM must also forward port 34197.
|
||||||
|
|
||||||
```
|
```
|
||||||
config.vm.network "public_network"
|
config.vm.network "public_network"
|
||||||
config.vm.network "forwarded_port", guest: 34197, host: 34197
|
config.vm.network "forwarded_port", guest: 34197, host: 34197
|
||||||
```
|
```
|
||||||
|
|
||||||
## Vagrant
|
|
||||||
|
|
||||||
Vagrant is a good way for those without a Linux machine to try Docker. Check out the [Factorio Vagrant Box](https://github.com/dtandersen/factorio-lan-vagrant).
|
|
||||||
|
|
||||||
## Troubleshooting
|
## Troubleshooting
|
||||||
|
|
||||||
**My server is listed in the server browser, but nobody can connect**
|
**My server is listed in the server browser, but nobody can connect**
|
||||||
@ -310,6 +337,7 @@ Use the `PORT` environment variable to start the server on the a different port,
|
|||||||
|
|
||||||
* [dtandersen](https://github.com/dtandersen/docker_factorio_server) - Maintainer
|
* [dtandersen](https://github.com/dtandersen/docker_factorio_server) - Maintainer
|
||||||
* [Fank](https://github.com/Fankserver/docker-factorio-watchdog) - Keeper of the Factorio watchdog that keeps the version up-to-date.
|
* [Fank](https://github.com/Fankserver/docker-factorio-watchdog) - Keeper of the Factorio watchdog that keeps the version up-to-date.
|
||||||
|
* [DBendit](https://github.com/DBendit/docker_factorio_server) - Admin list, ban list, version updates
|
||||||
* [Zopanix](https://github.com/zopanix/docker_factorio_server) - Originator
|
* [Zopanix](https://github.com/zopanix/docker_factorio_server) - Originator
|
||||||
* [Rfvgyhn](https://github.com/Rfvgyhn/docker-factorio) - Randomly generate RCON password
|
* [Rfvgyhn](https://github.com/Rfvgyhn/docker-factorio) - Randomly generate RCON password
|
||||||
* [gnomus](https://github.com/gnomus/docker_factorio_server) - White listing
|
* [gnomus](https://github.com/gnomus/docker_factorio_server) - White listing
|
||||||
|
Reference in New Issue
Block a user