Feature #44558
openAdd Docker support (Dockerfile + docker-compose) for easier self-hosting
Description
- Context
Redmine currently lacks official Docker support in the main repository. This makes self-hosting harder for new users, who must manually install and configure Ruby, Rails, a database server, and all dependencies before they can even start the app.
- What this adds
- `Dockerfile` — Multi-stage build for the Redmine application
- `docker-compose.yml` — Orchestrates the Redmine app + database service
- `.dockerignore` — Keeps the build context lean and excludes secrets/dependencies
- `README.md` — New "Run with Docker" section
- `.env.example` — Template for required environment variables
- Why this is useful
Anyone can now run Redmine with two commands:
```bash
cp .env.example .env
docker compose up -d
No manual Ruby/gem/database setup required. This lowers the barrier to entry for self-hosters and makes local development much faster.
Verification
I have tested this locally with sample (dummy) data:
☑ docker build completes successfully
☑ docker compose up -d starts both the app and DB containers
☑ Redmine is accessible at http://localhost:3000
☑ Tested with sample projects, issues, and tickets (see attached screenshot)
☑ Data persists across container restarts via named volumes
☑ Secrets are loaded at runtime via env_file: .env, not baked into the image
☑ Container runs as a non-root user
☑ Uses the official Postgres image for the database
My work / fork
GitHub: https://github.com/nixhal33/redmine
Branch with the Docker changes: https://github.com/nixhal33/redmine/tree/docker-support
Notes:
No category fits Docker/containerization support — please recategorize as appropriate.
This PR only addresses containerization. UI/theming is out of scope and untouched.
Happy to adjust the base image, compose layout, or any other detail based on feedback.
Files
Updated by nischal koirala about 8 hours ago
nischal koirala wrote:
Redmine currently lacks official Docker support in the main repository. This makes self-hosting harder for new users, who must manually install and configure Ruby, Rails, a database server, and all dependencies before they can even start the app.
What this adds
- `Dockerfile` — Multi-stage build for the Redmine application
- `docker-compose.yml` — Orchestrates the Redmine app + database service
- `.dockerignore` — Keeps the build context lean and excludes secrets/dependencies
- `README.md` — New "Run with Docker" section
- `.env.example` — Template for required environment variables
- Why this is useful
Anyone can now run Redmine with two commands:
```bash
cp .env.example .env
docker compose up -dNo manual Ruby/gem/database setup required. This lowers the barrier to entry for self-hosters and makes local development much faster.
Verification
I have tested this locally with sample (dummy) data:☑ docker build completes successfully
☑ docker compose up -d starts both the app and DB containers
☑ Redmine is accessible at http://localhost:3000
☑ Tested with sample projects, issues, and tickets (see attached screenshot)
☑ Data persists across container restarts via named volumes
☑ Secrets are loaded at runtime via env_file: .env, not baked into the image
☑ Container runs as a non-root user
☑ Uses the official Postgres image for the databaseMy work / fork
GitHub: https://github.com/nixhal33/redmineBranch with the Docker changes: https://github.com/nixhal33/redmine/tree/docker-support
Notes:
No category fits Docker/containerization support — please recategorize as appropriate.
This PR only addresses containerization. UI/theming is out of scope and untouched.
Happy to adjust the base image, compose layout, or any other detail based on feedback.
Updated by nischal koirala about 8 hours ago
Context:
Redmine currently lacks official Docker support in the main repository. This makes self-hosting harder for new users, who must manually install and configure Ruby, Rails, a database server, and all dependencies before they can even start the app.
What this adds:
Dockerfile — Multi-stage build for the Redmine application
docker-compose.yml — Orchestrates the Redmine app + database service
.dockerignore — Keeps the build context lean and excludes secrets/dependencies
README.md — New "Run with Docker" section
.env.example — Template for required environment variables
Why this is useful:
Anyone can now run Redmine with two commands:
cp .env.example .env
docker compose up -d
No manual Ruby/gem/database setup required. This lowers the barrier to entry for self-hosters and makes local development much faster.
Verification:
I have tested this locally with sample (dummy) data:
[x] docker build completes successfully
[x] docker compose up -d starts both the app and DB containers
[x] Redmine is accessible at http://localhost:3000
[x] Tested with sample projects, issues, and tickets (see attached screenshot)
[x] Data persists across container restarts via named volumes
[x] Secrets are loaded at runtime via env_file: .env, not baked into the image
[x] Container runs as a non-root user
[x] Uses the official Postgres image for the database
My work / fork:
GitHub: https://github.com/nixhal33/redmine
Branch with the Docker changes: https://github.com/nixhal33/redmine/tree/docker-support
Notes:
No category fits Docker/containerization support — please recategorize as appropriate.
This PR only addresses containerization. UI/theming is out of scope and untouched.
Happy to adjust the base image, compose layout, or any other detail based on feed