Dockerfile
links
Supported tags and 11.4
,11
,latest
(11/Dockerfile)10.9
,10
(10/Dockerfile)9.6.14
,9.6
(9.6/Dockerfile)9.5.18
,9.5
(9.5/Dockerfile)9.4.23
,9.4
(9.4/Dockerfile)
Quick reference
-
Where to get help: the Docker Community Forums, the Docker Community Slack, or Stack Overflow
-
Where to file issues: https://github.com/stellirin/docker-postgres-windows/issues
-
Maintained by: Stellirin
-
Supported architectures: (more info)
windows-amd64
What is PostgreSQL?
How to use this image
$ docker run --name some-postgres -e POSTGRES_PASSWORD=mysecretpassword -d stellirin/postgres-windows
This image includes EXPOSE 5432
(the postgres port), so standard container linking will make it automatically available to the linked containers. The default postgres
user and database are created in the entrypoint with initdb
.
Extended use
For further details about usage see the official PostgreSQL container image.
About this container image
A Windows container to run PostgreSQL based on the EnterpriseDB distribution, which is found on the PostgeSQL for Windows download page.
This repository builds a Windows based Docker image that is functionaly similar to the official Linux based Docker image.
Testing
The resulting image has been (minimally) tested with a proprietary enterprise Java application. This image accepts typical SQL files, it can use TLS certificates in PEM format, and it allows the Java application to connect securely and process data.
So far, no differences in behaviour have been observed compared to the official Linux based container.
Motivation
The Linux based Docker iamge cannot run on Windows as a LCOW container. This is due to differences in functionality between the NTFS and EXT4 file systems. Specifically, Linux commands such as chown
do not work but the PostgreSQL images rely on them for security.
Entrypoint
The entrypoint is written as a batch script because the database is run on windows/nanoserver
, which doesn't have PowerShell. Writing the entrypoint script was challenging due to batch script limitations, but this gives us a base image of less than 450MB
versus nearly 5GB
when windows/servercore
is used.
The Dockerfile
and the docker-entrypoint.cmd
were strongly inspired by the equivalent files for the official Linux based Docker images. There are some minor deviations, but this is mostly to work around differences in Batch script behaviour.
Licence
The files here are under the MIT licence, the same as the regular docker-library/postgres docker files. Just like docker-library/postgres
, the licence here covers only the files in this repository. It doesn't cover the PostgreSQL distribution, which has its own licence.