Deflector5098 ревизій цього gist 2 years ago. До ревизії
1 file changed, 63 insertions
gistfile1.txt(файл створено)
| @@ -0,0 +1,63 @@ | |||
| 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 | |
Новіше
Пізніше