Last active 2 years ago

Revision fda0245741e73c56e5bdec08ec2d5fcfc7dd4f24

gistfile1.txt Raw
1###############################################################################
2## Builder
3###############################################################################
4FROM alpine:3.18 as builder
5
6ENV POETRY_NO_INTERACTION=1 \
7 POETRY_VIRTUALENVS_IN_PROJECT=1 \
8 POETRY_VIRTUALENVS_CREATE=1 \
9 POETRY_CACHE_DIR=/tmp/poetry_cache
10
11RUN echo "**** install Python ****" && \
12 apk add --update --no-cache --virtual \
13 .build-deps \
14 gcc~=12.2 \
15 musl-dev~=1.2 \
16 python3-dev~=3.11 \
17 python3~=3.11 \
18 py3-pip~=23.1 && \
19 rm -rf /var/lib/apt/lists/* && \
20 echo "**** install Poetry ****" && \
21 pip install --no-cache-dir poetry==1.6.1
22
23
24WORKDIR /app
25
26COPY pyproject.toml poetry.lock ./
27
28RUN echo "**** install Python dependencies ****" && \
29 poetry install --without dev --no-root && rm -rf $POETRY_CACHE_DIR
30
31###############################################################################
32## Final image
33###############################################################################
34FROM alpine:3.18
35
36LABEL maintainer="Lorenzo Carbonell <a.k.a. atareao> lorenzo.carbonell.cerezo@gmail.com"
37
38ENV VIRTUAL_ENV=/app/.venv \
39 PATH="/app/.venv/bin:$PATH" \
40 PYTHONIOENCODING=utf-8 \
41 PYTHONUNBUFFERED=1 \
42 USER=app \
43 UID=1000
44
45RUN echo "**** install Python ****" && \
46 apk add --update --no-cache \
47 python3~=3.11 && \
48 rm -rf /var/lib/apt/lists/*
49
50COPY --from=builder ${VIRTUAL_ENV} ${VIRTUAL_ENV}
51COPY run.sh ./broker /app/
52
53RUN adduser \
54 --disabled-password \
55 --gecos "" \
56 --home "/${USER}" \
57 --shell "/sbin/nologin" \
58 --uid "${UID}" \
59 "${USER}" && \
60 chown -R app:app /app
61
62WORKDIR /app
63USER app
64