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 23 days 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 23 days 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