-
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDockerfile.postgres
More file actions
49 lines (33 loc) · 1.31 KB
/
Dockerfile.postgres
File metadata and controls
49 lines (33 loc) · 1.31 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# syntax=docker/dockerfile:1.6
FROM postgres:15.5-alpine3.19
ENV TZ=UTC
RUN apk add --no-cache python3 py3-pip tzdata
WORKDIR /usr/local/bin
COPY requirements.txt .
RUN python3 -m venv venv \
&& . venv/bin/activate \
&& pip install -r requirements.txt
ENV PATH="/usr/local/bin/venv/bin:$PATH"
ENV POSTGRES_DB=${POSTGRES_DB:-postgres}
ENV POSTGRES_USER=${POSTGRES_USER:-postgres}
ENV POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
ENV POSTGRES_PORT=${POSTGRES_PORT:-5432}
ARG USER_NAME=nonroot
RUN addgroup --system $USER_NAME \
&& adduser --system --ingroup $USER_NAME $USER_NAME \
&& mkdir -p /var/run/postgresql \
&& mkdir -p /var/lib/postgresql/data \
&& mkdir -p /var/log/postgres \
&& chown -R $USER_NAME:$USER_NAME /var/run/postgresql \
&& chown -R $USER_NAME:$USER_NAME /var/lib/postgresql/data \
&& chown -R $USER_NAME:$USER_NAME /var/log/postgres
COPY --chown=${USER_NAME} ./bin/json_to_postgres.py json_to_postgres
# TODO: minimmal postgresql.conf blocks connection outside loopback
# COPY --chown=${USER_NAME} config/postgresql.conf /etc/postgresql/postgresql.conf
WORKDIR /data
COPY --chown=${USER_NAME} db.json .
USER $USER_NAME
EXPOSE ${POSTGRES_PORT}
# TODO: `database "sa" does not exist
CMD ["postgres"]
# CMD ["postgres", "-c", "config_file=/etc/postgresql/postgresql.conf"]