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