-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDockerfile.dev
60 lines (41 loc) · 1.37 KB
/
Dockerfile.dev
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
50
51
52
53
54
55
56
57
58
59
60
# syntax=docker/dockerfile:1.7.0
ARG PYTHON_VERSION=3.11.9
FROM python:${PYTHON_VERSION}-alpine AS builder
RUN apk add --no-cache \
curl \
gcc \
musl-dev \
python3-dev
ENV PIP_NO_CACHE_DIR=off
ENV PIP_DISABLE_PIP_VERSION_CHECK=on
ENV PIP_DEFAULT_TIMEOUT=100
ENV VENV="/opt/venv"
ENV PATH="$VENV/bin:$PATH"
WORKDIR /app
COPY requirements-dev.txt .
RUN python -m venv $VENV \
&& . $VENV/bin/activate \
&& python -m pip install --upgrade pip \
&& python -m pip install -r requirements-dev.txt
FROM python:${PYTHON_VERSION}-alpine AS runner
ENV TZ=${TZ:-"America/Chicago"}
RUN apk add --no-cache tzdata \
&& ln -snf "/usr/share/zoneinfo/${TZ}" /etc/localtime \
&& echo "$TZ" > /etc/timezone
ENV USER_NAME=appuser
ENV VENV="/opt/venv"
ENV PATH="${VENV}/bin:${VENV}/lib/python${PYTHON_VERSION}/site-packages:/usr/local/bin:${HOME}/.local/bin:/bin:/usr/bin:/usr/share/doc:$PATH"
ENV LANG C.UTF-8
ENV LC_ALL C.UTF-8
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONFAULTHANDLER 1
ARG UID=10001
RUN adduser -D -u ${UID} ${USER_NAME}
USER ${USER_NAME}
WORKDIR /app
COPY --chown=${USER_NAME} ./app .
COPY --from=builder --chown=${USER_NAME} "$VENV" "$VENV"
CMD [ "sleep", "infinity" ]
LABEL org.opencontainers.image.title="meetup_bot"
LABEL org.opencontainers.image.version="test"
LABEL org.opencontainers.image.description="meetup_bot image for running tests in CI"