Added autosave feature

This commit is contained in:
Christophe Vandekerchove 2016-03-26 10:49:27 +01:00
parent 9044045dac
commit 308f7cad10
3 changed files with 25 additions and 6 deletions

View File

@ -1,6 +1,6 @@
FROM debian:latest FROM debian:latest
MAINTAINER zopanix@gmail.com MAINTAINER zopanix <zopanix@gmail.com>
WORKDIR /opt WORKDIR /opt
@ -22,3 +22,6 @@ RUN echo "# Installing curl" && \
apt-get autoremove -y --purge && \ apt-get autoremove -y --purge && \
apt-get clean && \ apt-get clean && \
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
ENV FACTORIO_AUTOSAVE_INTERVAL 2
ENV FACTORIO_AUTOSAVE_SLOTS 3

View File

@ -10,6 +10,7 @@ Current Version
See [factorio's site](http://www.factorio.com) See [factorio's site](http://www.factorio.com)
#### Docker image #### Docker image
* Automatically takes latest save or autosave. when restarting the container. * Automatically takes latest save or autosave. when restarting the container.
* Added possibility to change defautl autosave interval
Versions Versions
----- -----
@ -24,20 +25,29 @@ How to use ?
### Without map persistence ### Without map persistence
Here is the command : Here is the command :
`docker run -d -p [PORT]:34197/udp factorio` `docker run --rm -d -p [PORT]:34197/udp zopanix/factorio`
This will generate a new random map with default settings. This will generate a new random map with default settings.
If you're going to launch it on your local machine, don't use the port 34197, take another one at random. If you're going to launch it on your local machine, don't use the port 34197, take another one at random.
### With map persistence ### With map persistence
`docker run -d -v [PATH]:/opt/factorio/saves -p [PORT]:34197/udp factorio` `docker run --rm -d -v [PATH]:/opt/factorio/saves -p [PORT]:34197/udp zopanix/factorio`
This will generate a new random map with default settings and save it onto the volume. This will generate a new random map with default settings and save it onto the volume.
Replace [PATH] with a path to a folder on the host where the map will be saved. Replace [PATH] with a path to a folder on the host where the map will be saved.
### With existing map ### With existing map
`docker run -d -v [PATH]:/opt/factorio/saves -p [PORT]:34197/udp factorio` `docker run --rm -d -v [PATH]:/opt/factorio/saves -p [PORT]:34197/udp zopanix/factorio`
It's the same as above, it takes the last modified file which contains the word save in the filename as current save when booting the server. This allows when upgrading the container to take the last save, you don't have to rename the last autosave as save.zip It's the same as above, it takes the last modified file which contains the word save in the filename as current save when booting the server. This allows when upgrading the container to take the last save, you don't have to rename the last autosave as save.zip
### Advanced usage
#### Autosave interval
You can set the autosave interval. By default it is set at 2 minutes bud you can change it by launching the container with the "FACTORIO_AUTOSAVE_INTERVAL" variable to whatever suits you best.
`docker run --rm -d --env FACTORIO_AUTOSAVE_INTERVAL=[NUMBER] -v [PORT]:34197/udp zopanix/factorio`
Where [NUMBER] is the number of minutes between autosaves.
#### Autosave slots
You can set the number of autosave slots. By default it is set at 3 slots bud you can change it by launching the container with the "FACTORIO_AUTOSAVE_SLOTS" variable to whatever suits you best.
`docker run --rm -d --env FACTORIO_AUTOSAVE_SLOTS=[NUMBER] -v [PORT]:34197/udp zopanix/factorio`
Where [NUMBER] is the number of autosave slots.
ToDo's : ToDo's :
----- -----
* Adding possibility to add a mod volume * Adding possibility to add a mod volume
* Adding possibility to change the number of autosave

View File

@ -14,6 +14,7 @@ else
echo "# Creating a new map [save.zip]" echo "# Creating a new map [save.zip]"
echo "###" echo "###"
/opt/factorio/bin/x64/factorio --create save.zip /opt/factorio/bin/x64/factorio --create save.zip
last_save="save.zip"
echo "###" echo "###"
echo "# New map created [save.zip]" echo "# New map created [save.zip]"
echo "###" echo "###"
@ -22,4 +23,9 @@ fi
echo "###" echo "###"
echo "# Launching Game" echo "# Launching Game"
echo "###" echo "###"
exec /opt/factorio/bin/x64/factorio --disallow-commands --start-server $last_save exec /opt/factorio/bin/x64/factorio \
--disallow-commands \
--start-server \
$last_save \
--autosave-interval ${FACTORIO_AUTOSAVE_INTERVAL} \
--autosave-slots ${FACTORIO_AUTOSAVE_SLOTS}