This guide will show you in detail how to install Redmine 7 via Docker Container in Windows.
- WSL install
- Docker Desktop download
- Docker Desktop installation
- Creating a docker-compose.yml file
- Troubleshooting while starting the Docker Compose
- Access Redmine 7
WSL install
The Windows OS needs WSL (Windows Subsystem for Linux) for the Docker to be able to work. Please follow these steps to install it first.
Open your PowerShell as administrator.

Then run this command:
wsl --install

The process continues installation in this way (please just wait while installing).

When the WSL installation finishes, you will see this.

As you can see in the last picture, reboot of your Windows (and computer accordingly) is needed. After rebooting, a terminal windows will pop-up again to continue installation process. Please wait until it is done and close the terminal window.
Docker Desktop download
Now, you need to download the very latest Docker Desktop for your Windows. Please visit the official Docker site to download it.
You can choose to download the file when click on button "Docker Desktop for Windows - x86_64" or install it via the Microsoft store when you click on button "Docker Desktop for Windows - x86_64 on the Microsoft Store". In our example we choose the first option.

Then you will get the file in your Downloads folder.

Docker Desktop installation
Double-click on the installation file in your Downloads folder. First thing that you will be asked is about the type of installation. Just click the recommended option (the first one).

Just wait for the process to go on.

Once it is done, you will get this window.

Afterward you will get a standard shortcut at your Windows desktop.

Creating a docker-compose.yml file
Open your PowerShell (just normally, not as administrator) again and in directory C:\Users\[your_user_name] (in our example case the user name is "dimit") create Docker Redmine directory via this command:
mkdir C:\docker\redmine
As a result you will see this.

Now change the directory to the newly created one.
cd C:\docker\redmine\

In this directory, please create the docker-compose.yml file via Notepad or any text editor that you wish. And inside put the following text:
services:
postgres:
image: postgres:16-bookworm
container_name: redmine_postgres
restart: always
environment:
POSTGRES_USER: redmine
POSTGRES_PASSWORD: my_secure_password
POSTGRES_DB: redmine
volumes:
- postgres_data:/var/lib/postgresql/data
networks:
- redmine_network
redmine:
image: redmine:latest
container_name: redmine_app
restart: always
ports:
- "8080:3000"
environment:
REDMINE_DB_POSTGRES: postgres
REDMINE_DB_USERNAME: redmine
REDMINE_DB_PASSWORD: my_secure_password
REDMINE_DB_DATABASE: redmine
# Optional: Uncomment if you want to automatically migrate plugins on startup
# REDMINE_PLUGINS_MIGRATE: "true"
volumes:
- redmine_data:/usr/src/redmine/files
- redmine_plugins:/usr/src/redmine/plugins
- redmine_themes:/usr/src/redmine/themes
depends_on:
- postgres
networks:
- redmine_network
volumes:
postgres_data:
redmine_data:
redmine_plugins:
redmine_themes:
networks:
redmine_network:
driver: bridge
Please make sure to change the my_secure_password for your database and Redmine. In our case, we will keep it in this default way for testing purposes only.

After saving the file, it should look like this in the correct directory.

Troubleshooting while starting the Docker Compose
Now when you try to run the Docker Compose, you can have several problem and we would like to through them so you will be able to solve them if you got some of them on your way.
So, the command to start it is:
docker compose up -d
TXT instead of YML
First possible problem is if you have No such file answer as a result in your PowerShell. This is because you saved your docker-compose.yml file as docker-compose.yml.txt. When you save it in your Notepad, the "txt" part is hidden, so you think it is fine (only .yml) but in real it got the .txt extension in the end.
If you wish to confirm that this is the problem, then just run the dir command. You will see the full file name and real extension at the end. Afterward, please execute the following command to fix the problem:
ren docker-compose.yml.txt docker-compose.yml
Then run the dir command again to make sure and confirm that all is good now.

Failed to connect to docker API
The problem comes if you see this message after you try to start the Docker Compose.

The solution here is simple. You have to just start the the Docker App from the Desktop shortcut or from the Windows start menu.

Once you start the Desktop App you will have a proposal to login or create a new account. In our example here, we will just skip this step.

Virtualization is disabled in firmware
This problem comes in the Docker App after starting. It blocks the process to continue.

The key here is to restart your computer and enter the BIOS setup (usually via pressing F12 or ESC). Then find the virtualization option and stich it on. In the below picture you will see the option still off (and that's why it is causing the problem).

Now everything is correct and set so the WSL app starts automatically with the Docker App.
- WSL app:

- Docker app:

502 Bad Gateway
But even now when the Apps (Docker and WSL) are running when you try to start your specific Docker Compose of Redmine 7 via the command "docker compose up -d", you may get this 502 Bad Gateway error:

The solution here is simple too. The "502 Bad Gateway" errors are usually transient server-side hiccups. Try running the command again after a few seconds and it will fix the problem for you.

Before that you will be asked to allow the Windows Firewall to get access for the Docker.

Access Redmine 7
As now everything is up and running (WSL and Docker apps as well as the Docker Compose in the PowerShell), you can access your Redmine 7 on the specified localhost port, earlier set in your docker-compose.yml file:
localhost:8080

Now login with the default credentials:
- username: admin
- password: admin
Then you will be asked to change your password with a new one.

Then you will successfully get in.

If you go to Administration - Information, you will get your full system info of your Redmine 7.

You can check the current status of your Docker Compose Redmine 7 via the command:
docker compose ps

Also if you open your Docker app, you will see your Redmine 7 up and running there too.
