Dockerfile to build a Factorio game server image. You can find the pre-built images on Docker Hub at carloe/docker-factorio
The init script will automatically create a new save game if none exists.
docker run -d \
-p 34197:34197/udp \
--name factorio-server \
carloe/docker-factorio
Use a docker volume to persist the savegames on the host machine rather than in the docker container.
mkdir $(pwd)/saves
# Make sure the saves dir can be written to by the "factorio" user in Docker, with uid 1000
sudo chown 1000:1000 $(pwd)/saves
# (alternatively, if you don't have root): chmod 777 $(pwd)/saves
docker run -d \
-v $(pwd)/saves:/opt/factorio/saves \
-p 34197:34197/udp \
--restart=always \
--name factorio-server \
carloe/docker-factorio
The latest Factorio headless server is downloaded at build time. This may be a good reason you want to build your own image since the Docker Hub repo may not always be up to date.
git clone https://github.com/carloe/docker-factorio.git
docker build -t some-factorio .
Then launch your container as usual.
docker run -d \
-v $(pwd)/saves:/opt/factorio/saves \
-p 34197:34197/udp \
--restart=always \
--name factorio-server \
some-factorio