Commit Graph

64 Commits

Author SHA1 Message Date
e8adbf55c1 feat: Add rootless Docker support (#574)
* feat: Add rootless Docker support

Implements #547 - Add support for rootless Docker images to avoid permission issues.

Key changes:
- Add Dockerfile.rootless that runs as UID 1000 by default
- Create simplified entrypoint script without chown operations
- Add build-rootless.py to build rootless variants with -rootless suffix
- Document rootless usage in README-ROOTLESS.md
- Update main README with rootless section

The rootless images eliminate common permission problems by:
- Running as non-root from the start (USER 1000:1000)
- Avoiding recursive chown operations that can cause race conditions
- Using open permissions (777) on directories during build
- Not supporting PUID/PGID environment variables

This provides a cleaner solution for rootless Docker users and those
experiencing permission issues with volumes.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* fix: Address linting issues in rootless Docker implementation

- Add --no-install-recommends to apt-get install in Dockerfile
- Consolidate consecutive RUN instructions in Dockerfile
- Fix shellcheck warnings: quote variables and use -n instead of \! -z
- These changes improve best practices without affecting functionality

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* feat: Add rootless image building to CI pipeline

- Update docker-build.yml workflow to build rootless variants
- Rootless images are built after regular images with -rootless suffix
- Both use the same multi-architecture build process
- Triggered automatically when buildinfo.json changes

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* refactor: Unify build system for regular and rootless images

- Create build-unified.py that handles both regular and rootless builds
- Convert build.py and build-rootless.py to wrapper scripts for backwards compatibility
- Update CI workflow to use unified build command
- Add BUILD_MIGRATION.md documentation
- Eliminate code duplication between build scripts
- Support flexible build options: --rootless, --both, --only-stable-latest

This maintains all existing functionality while providing a cleaner, more maintainable build system.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* chore: Add Python cache to .gitignore and remove from repo

- Add __pycache__/ and Python compiled files to .gitignore
- Remove accidentally committed __pycache__ directory
- Prevent future Python cache files from being tracked

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* refactor: Replace build system with unified solution

- Remove old build.py and build-rootless.py wrapper scripts
- Rename build-unified.py to build.py as the main build script
- Delete BUILD_MIGRATION.md (no longer needed)
- Update CI workflow to use new build.py syntax
- Update documentation in CLAUDE.md and README-ROOTLESS.md

The new build system provides all functionality in a single script:
- Default: builds regular images
- --rootless: builds only rootless images
- --both: builds both regular and rootless images
- --multiarch and --push-tags: work as before

This creates a cleaner, more maintainable build system.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* docs: Consolidate rootless documentation and mark as experimental

- Remove separate README-ROOTLESS.md file
- Integrate rootless documentation into main README.md
- Mark rootless support as experimental
- Add clear documentation about limitations and use cases
- Include warning about experimental nature

This consolidates all documentation in one place and makes it clear
that rootless support is still experimental.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-07-12 13:46:33 +09:00
5b6e0cde8b Add file package to Docker image for better debugging (#578)
The Docker builds have been failing since June 2025 with the error:
'/bin/bash: line 1: file: command not found'

This error occurs when the SHA256 checksum verification fails and the
Dockerfile attempts to run 'file' command to help debug what type of
file was downloaded. However, the 'file' package is not installed in
the debian:stable-slim base image.

This commit adds the 'file' package to the apt-get install list so that
when SHA256 verification fails, we can get better debugging information
about what was actually downloaded (e.g., whether it's an HTML error
page instead of the expected tar.xz file).

While this doesn't fix the root cause of the SHA256 failures, it will
provide better diagnostics to help identify the actual issue.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

Took 55 minutes
2025-07-12 12:21:42 +09:00
72c3590cd6 Fix duplicate mod error with Space Age DLC mods (#576) (#577)
Skip downloading built-in DLC mods (elevated-rails, quality, space-age) when UPDATE_MODS_ON_START is enabled. These mods are included with the Space Age DLC and attempting to download them separately causes "Duplicate mod" errors.

- Modified update-mods.sh to skip DLC built-in mods during updates
- Added documentation note explaining the automatic handling of DLC mods

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-authored-by: Claude <noreply@anthropic.com>
2025-07-09 21:50:59 +09:00
15d38ea739 Fix mod version compatibility checking for major version differences (#575)
This fixes issue #517 where the auto mod updater was downloading the wrong
mod versions after updating to Space Age (Factorio 2.0). The problem was that
the version checking logic was incorrectly rejecting compatible mod versions.

Changes:
- Fixed check_game_version() to properly handle major version differences
- Game versions can now run mods designed for older major versions (backward compatibility)
- Game versions correctly reject mods requiring newer versions
- Fixed variable references in check_dependency_version()
- Added clarifying comments about the version checking behavior

This also addresses issue #468 by ensuring mods requiring newer Factorio
versions than currently installed are properly skipped.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-authored-by: Claude <noreply@anthropic.com>
2025-07-06 19:01:05 +09:00
9464758a7b Updated mods updater script to correctly process mod dependencies (#557)
Co-authored-by: Victor <victor@blockbank.ai>
2025-07-03 19:48:23 +09:00
4562f675ea Auto Update Factorio to stable version: 2.0.55 experimental version: 2.0.55 2025-06-05 10:28:37 +00:00
e82cead5f4 Auto Update Factorio to stable version: 2.0.47 experimental version: 2.0.47 2025-05-05 15:26:04 +00:00
a2c11ade50 Auto Update Factorio to stable version: 2.0.43 experimental version: 2.0.43 2025-03-31 13:32:20 +00:00
0929686ad3 Auto Update Factorio to stable version: 2.0.42 experimental version: 2.0.42 2025-03-21 18:31:36 +00:00
080a70f6be Auto Update Factorio to stable version: 2.0.41 experimental version: 2.0.41 2025-03-14 12:44:07 +00:00
c0e1bae277 Auto Update Factorio to stable version: 2.0.39 experimental version: 2.0.39 2025-03-11 10:25:24 +00:00
20e6176a85 Auto Update Factorio to stable version: 2.0.32 experimental version: 2.0.32 2025-01-23 14:20:03 +00:00
e5e1993c97 Auto Update Factorio to stable version: 2.0.30 experimental version: 2.0.32 2025-01-21 14:20:23 +00:00
3c45811e15 Auto Update Factorio to stable version: 2.0.28 experimental version: 2.0.28 2024-12-21 11:15:51 +00:00
6a3b160d76 Auto Update Factorio to stable version: 2.0.23 experimental version: 2.0.23 2024-12-02 09:26:26 +00:00
a1135b6a55 Auto Update Factorio to stable version: 2.0.21 experimental version: 2.0.21 2024-11-25 08:30:43 +00:00
66ce43c0ca Auto Update Factorio to stable version: 2.0.20 experimental version: 2.0.20 2024-11-19 14:22:24 +00:00
c2d7c5696e Add rcon client (#550)
* Add rcon client to container

* Explain rcon command

* Remove test container name

* Apply suggestions

Co-authored-by: Florian Kinder <florian.kinder@fankserver.com>

* Add example docker-compose file

* Clarify return code

* Switch to pre-update

* Update docker-compose.yml

Co-authored-by: Florian Kinder <florian.kinder@fankserver.com>

* Allow build support for build (/* is only possible in buildx)

* Added version information in README.md

---------

Co-authored-by: Florian Kinder <florian.kinder@fankserver.com>
2024-11-14 19:41:25 +01:00
ecb89b0c11 Auto Update Factorio to stable version: 2.0.15 experimental version: 2.0.15 2024-11-08 08:27:04 +00:00
42a08a95d4 Added extra_host example for NAS (#542)
* Added extra_host example for NAS

Took 11 minutes

* 🎨

Took 3 minutes
2024-11-08 00:13:38 +01:00
6916fcb150 Auto Update Factorio to stable version: 2.0.14 experimental version: 2.0.14 2024-11-03 12:36:15 +00:00
a24e42b281 Auto Update Factorio to stable version: 2.0.13 experimental version: 2.0.13 2024-10-31 14:20:50 +00:00
cc5061d339 Auto Update Factorio to stable version: 2.0.12 experimental version: 2.0.12 2024-10-29 12:44:42 +00:00
64980b9db3 using absolute path over relative path for subscripts (#538) 2024-10-27 19:49:15 +01:00
956ade4f0b Auto Update Factorio to stable version: 2.0.11 experimental version: 2.0.11 2024-10-26 08:25:28 +00:00
eb150cff0d Auto Update Factorio to stable version: 2.0.10 experimental version: 2.0.10 2024-10-24 13:59:37 +00:00
b20d93e229 Change DLC_SPACE_AGE to enable specific Space Age mods (#530)
* Change variable DLC_SPACE_AGE to allow listing specific Space Age mods to enable

* Adjust DLC_SPACE_AGE note

Co-authored-by: Florian Kinder <florian.kinder@fankserver.com>

---------

Co-authored-by: Florian Kinder <florian.kinder@fankserver.com>
2024-10-23 23:54:02 +02:00
44a58b056c Auto Update Factorio to stable version: 2.0.9 experimental version: 2.0.9 2024-10-23 10:23:09 +00:00
e37bcf1ed0 Create base mod-list.json if it does not exist (#523) 2024-10-22 23:54:00 +02:00
dde2761a8c fix entrypoint logic for checking if root 2024-10-22 23:40:47 +02:00
0ec91c3391 Add documentation for env variable MODS and make it actually change the mod directory (#520) 2024-10-22 23:22:20 +02:00
f9040c7450 Added missing environment variable
Took 20 minutes
2024-10-22 21:23:58 +02:00
89ae20012e Added DLC_SPACE_AGE environment variable (#519)
* Added DLC_SPACE_AGE environment variable to enable or disable dlc related mods

Took 53 minutes

* 🎨

Took 2 minutes
2024-10-22 20:40:34 +02:00
f7e9dea263 Improve logging in updating mods (#518)
Took 55 minutes
2024-10-22 19:28:25 +02:00
04085ef23d Auto Update Factorio to stable version: 2.0.8 experimental version: 2.0.8 2024-10-21 21:20:17 +00:00
c269289a96 Improve image stages (#509)
Signed-off-by: Marc 'risson' Schmitt <marc.schmitt@risson.space>
2024-10-21 15:59:34 +02:00
ee0388e163 Auto Update Factorio to stable version: 2.0.7 experimental version: 2.0.7 2024-10-21 12:52:02 +00:00
a1cb15b709 Updated update.sh and clear data from broken github action! (#505)
* Update update.sh to fix SHA256 grabbing

* Update buildinfo.json reverted data so build.sh can run

* Update docker-compose.yml  reverted data so build.sh can run
2024-10-21 14:51:42 +02:00
890489fb15 Auto Update Factorio to stable version: 2.0.7 experimental version: 2.0.7 2024-10-21 11:14:31 +00:00
4474b52473 Auto Update Factorio to stable version: 1.1.110 experimental version: 1.1.110 2024-08-27 18:27:09 +00:00
159b14bd8e Auto Update Factorio to stable version: 1.1.109 experimental version: 1.1.109 2024-07-02 13:21:23 +00:00
88fed07073 container label for factorio version (#493) 2024-06-12 19:48:50 +09:00
4ab4c889f4 Add support for --preset options provided by vanilla and popular mods (#482)
* Add support for --preset options provided by vanilla and popular mods

* Add support for --preset in scenario.sh

* Replace SU_EXEC with EXEC
2024-06-12 19:47:42 +09:00
bc28f4a917 Added missing envsubst command
Fixes #489
2024-06-12 19:46:53 +09:00
f4e0e640c5 Auto Update Factorio to stable version: 1.1.107 experimental version: 1.1.107 2024-04-18 14:16:47 +00:00
630c5a1864 Install procps for ps command used in kubernetes probes (#487)
Co-authored-by: Florian Kinder <florian.kinder@enthus.de>
2024-03-09 16:05:48 +09:00
98d3e475d3 add support for ARM (#485)
* build and run on arm64

* multiarch docker build

* add ARM64 warning to README.md
2024-03-03 12:09:41 +09:00
bd76f1c541 Swap to Debian slim baseimage (#469)
* Swap to Debian slim baseimage

Co-authored-by: Sandro <sandro.jaeckel@gmail.com>

* Only install necessary packages

---------

Co-authored-by: Doridian <git@doridian.net>
Co-authored-by: Sandro <sandro.jaeckel@gmail.com>
2024-03-03 11:57:47 +09:00
81b476ac97 Auto Update Factorio to stable version: 1.1.104 experimental version: 1.1.104 2024-02-14 12:31:41 +00:00
89f601e5ce Auto Update Factorio to stable version: 1.1.101 experimental version: 1.1.101 2024-01-10 12:34:39 +00:00