docker/server.dockerfile
author ymh <ymh.work@gmail.com>
Wed, 14 Aug 2024 22:08:14 +0200
changeset 142 640fb0f13022
permissions -rw-r--r--
server and docker migration
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
142
640fb0f13022 server and docker migration
ymh <ymh.work@gmail.com>
parents:
diff changeset
     1
# set base image (host OS)
640fb0f13022 server and docker migration
ymh <ymh.work@gmail.com>
parents:
diff changeset
     2
FROM docker.io/python:alpine as base
640fb0f13022 server and docker migration
ymh <ymh.work@gmail.com>
parents:
diff changeset
     3
640fb0f13022 server and docker migration
ymh <ymh.work@gmail.com>
parents:
diff changeset
     4
ARG DEV=false
640fb0f13022 server and docker migration
ymh <ymh.work@gmail.com>
parents:
diff changeset
     5
ENV PATH="/code/.venv/bin:$PATH"
640fb0f13022 server and docker migration
ymh <ymh.work@gmail.com>
parents:
diff changeset
     6
WORKDIR /code
640fb0f13022 server and docker migration
ymh <ymh.work@gmail.com>
parents:
diff changeset
     7
640fb0f13022 server and docker migration
ymh <ymh.work@gmail.com>
parents:
diff changeset
     8
FROM base as builder
640fb0f13022 server and docker migration
ymh <ymh.work@gmail.com>
parents:
diff changeset
     9
640fb0f13022 server and docker migration
ymh <ymh.work@gmail.com>
parents:
diff changeset
    10
ENV POETRY_NO_INTERACTION=1 \
640fb0f13022 server and docker migration
ymh <ymh.work@gmail.com>
parents:
diff changeset
    11
    POETRY_VIRTUALENVS_IN_PROJECT=1 \
640fb0f13022 server and docker migration
ymh <ymh.work@gmail.com>
parents:
diff changeset
    12
    POETRY_VIRTUALENVS_CREATE=1 \
640fb0f13022 server and docker migration
ymh <ymh.work@gmail.com>
parents:
diff changeset
    13
    POETRY_CACHE_DIR=/tmp/poetry_cache
640fb0f13022 server and docker migration
ymh <ymh.work@gmail.com>
parents:
diff changeset
    14
640fb0f13022 server and docker migration
ymh <ymh.work@gmail.com>
parents:
diff changeset
    15
RUN \
640fb0f13022 server and docker migration
ymh <ymh.work@gmail.com>
parents:
diff changeset
    16
  apk add --no-cache libmemcached zlib && \
640fb0f13022 server and docker migration
ymh <ymh.work@gmail.com>
parents:
diff changeset
    17
  apk add --no-cache musl-dev build-base libmemcached-dev zlib-dev linux-headers
640fb0f13022 server and docker migration
ymh <ymh.work@gmail.com>
parents:
diff changeset
    18
640fb0f13022 server and docker migration
ymh <ymh.work@gmail.com>
parents:
diff changeset
    19
640fb0f13022 server and docker migration
ymh <ymh.work@gmail.com>
parents:
diff changeset
    20
# Install Poetry
640fb0f13022 server and docker migration
ymh <ymh.work@gmail.com>
parents:
diff changeset
    21
RUN pip install poetry
640fb0f13022 server and docker migration
ymh <ymh.work@gmail.com>
parents:
diff changeset
    22
640fb0f13022 server and docker migration
ymh <ymh.work@gmail.com>
parents:
diff changeset
    23
# Install the app
640fb0f13022 server and docker migration
ymh <ymh.work@gmail.com>
parents:
diff changeset
    24
COPY src/pyproject.toml src/poetry.lock ./
640fb0f13022 server and docker migration
ymh <ymh.work@gmail.com>
parents:
diff changeset
    25
RUN if [ $DEV ]; then \
640fb0f13022 server and docker migration
ymh <ymh.work@gmail.com>
parents:
diff changeset
    26
      poetry install --with dev --no-root && rm -rf $POETRY_CACHE_DIR; \
640fb0f13022 server and docker migration
ymh <ymh.work@gmail.com>
parents:
diff changeset
    27
    else \
640fb0f13022 server and docker migration
ymh <ymh.work@gmail.com>
parents:
diff changeset
    28
      poetry install --without dev --no-root && rm -rf $POETRY_CACHE_DIR; \
640fb0f13022 server and docker migration
ymh <ymh.work@gmail.com>
parents:
diff changeset
    29
    fi
640fb0f13022 server and docker migration
ymh <ymh.work@gmail.com>
parents:
diff changeset
    30
640fb0f13022 server and docker migration
ymh <ymh.work@gmail.com>
parents:
diff changeset
    31
FROM base as runtime
640fb0f13022 server and docker migration
ymh <ymh.work@gmail.com>
parents:
diff changeset
    32
640fb0f13022 server and docker migration
ymh <ymh.work@gmail.com>
parents:
diff changeset
    33
RUN apk add --no-cache libmemcached zlib bash
640fb0f13022 server and docker migration
ymh <ymh.work@gmail.com>
parents:
diff changeset
    34
640fb0f13022 server and docker migration
ymh <ymh.work@gmail.com>
parents:
diff changeset
    35
COPY --from=builder /code/.venv /code/.venv
640fb0f13022 server and docker migration
ymh <ymh.work@gmail.com>
parents:
diff changeset
    36
COPY src/catedit /code/catedit
640fb0f13022 server and docker migration
ymh <ymh.work@gmail.com>
parents:
diff changeset
    37
COPY docker/catedit.yml /code/
640fb0f13022 server and docker migration
ymh <ymh.work@gmail.com>
parents:
diff changeset
    38
COPY docker/config.py /code/
640fb0f13022 server and docker migration
ymh <ymh.work@gmail.com>
parents:
diff changeset
    39
ENV CATEDIT_SETTINGS=/code/config.py
640fb0f13022 server and docker migration
ymh <ymh.work@gmail.com>
parents:
diff changeset
    40
  
640fb0f13022 server and docker migration
ymh <ymh.work@gmail.com>
parents:
diff changeset
    41
640fb0f13022 server and docker migration
ymh <ymh.work@gmail.com>
parents:
diff changeset
    42
CMD ["uwsgi", "--yaml", "/code/catedit.yml"]