Modify: Dockerfile use bild args and add healthchek docker-compose use env
This commit is contained in:
parent
8971752e5b
commit
e95de1b553
47
Dockerfile
47
Dockerfile
@ -8,23 +8,56 @@ ENV PYTHONDONTWRITEBYTECODE 1
|
|||||||
ENV PYTHONUNBUFFERED 1
|
ENV PYTHONUNBUFFERED 1
|
||||||
ENV PIP_DISABLE_PIP_VERSION_CHECK=on
|
ENV PIP_DISABLE_PIP_VERSION_CHECK=on
|
||||||
|
|
||||||
# install dependences
|
# install app dependences
|
||||||
COPY requirements.txt ./
|
COPY requirements.txt ./
|
||||||
RUN pip install --no-cache-dir --root-user-action=ignore -r requirements.txt
|
RUN pip install --no-cache-dir --root-user-action=ignore -r requirements.txt
|
||||||
|
|
||||||
# Now multistage builds
|
# now multistage builds
|
||||||
FROM python:3.10-alpine
|
FROM python:3.10-alpine
|
||||||
|
|
||||||
|
# set env variables
|
||||||
|
ENV PYTHONDONTWRITEBYTECODE 1
|
||||||
|
ENV PYTHONUNBUFFERED 1
|
||||||
|
|
||||||
|
# default build args
|
||||||
|
ARG VERSION=0.1.0 \
|
||||||
|
APP_DIR=/app \
|
||||||
|
SRC_DIR=./logs_collector \
|
||||||
|
SCRIPTS_DIR=./scripts \
|
||||||
|
WEB_PORT=8000 \
|
||||||
|
USER_NAME=collector \
|
||||||
|
USER_GROUP=collector \
|
||||||
|
APP_UID=1000 \
|
||||||
|
APP_GID=1000
|
||||||
|
|
||||||
|
# copy app dependences
|
||||||
COPY --from=base /usr/local/lib/python3.10/site-packages/ /usr/local/lib/python3.10/site-packages/
|
COPY --from=base /usr/local/lib/python3.10/site-packages/ /usr/local/lib/python3.10/site-packages/
|
||||||
COPY --from=base /usr/local/bin/ /usr/local/bin/
|
COPY --from=base /usr/local/bin/ /usr/local/bin/
|
||||||
|
|
||||||
|
# add curl and createa user to avoid running container as root
|
||||||
|
RUN apk add --no-cache --upgrade curl && \
|
||||||
|
addgroup --system ${USER_GROUP} --gid ${APP_GID} && \
|
||||||
|
adduser --system --uid ${APP_UID} --ingroup ${USER_GROUP} ${USER_NAME}
|
||||||
|
|
||||||
|
# switch to user
|
||||||
|
USER ${USER_NAME}
|
||||||
|
|
||||||
|
# copy src and entrypoint.sh to app dir
|
||||||
|
COPY --chown=${USER_NAME}:${USER_GROUP} ${SRC_DIR} ${APP_DIR}
|
||||||
|
COPY --chown=${USER_NAME}:${USER_GROUP} ${SCRIPTS_DIR}/entrypoint.sh ${APP_DIR}/
|
||||||
|
|
||||||
|
# set workdir
|
||||||
|
WORKDIR ${APP_DIR}
|
||||||
|
|
||||||
|
# app listens on this port by default
|
||||||
|
EXPOSE ${WEB_PORT}
|
||||||
|
|
||||||
# set lables about app
|
# set lables about app
|
||||||
LABEL maintainer="s.zhukovskii@ispsystem.com"
|
LABEL maintainer="s.zhukovskii@ispsystem.com"
|
||||||
LABEL ru.isptech.logs-collector.version=v0.1.0
|
LABEL me.zhukovsky.logs-collector.version=v${VERSION}
|
||||||
|
|
||||||
COPY ./logs_collector /app
|
# call the health check endpoint of app
|
||||||
WORKDIR /app
|
HEALTHCHECK CMD curl --fail http://localhost:8000 || exit 1
|
||||||
|
|
||||||
COPY entrypoint.sh ./
|
|
||||||
|
|
||||||
|
# run app
|
||||||
ENTRYPOINT [ "sh", "entrypoint.sh" ]
|
ENTRYPOINT [ "sh", "entrypoint.sh" ]
|
||||||
|
@ -1,16 +1,31 @@
|
|||||||
version: "3.7"
|
version: "3"
|
||||||
|
|
||||||
|
# to set environment variables:
|
||||||
|
# create a .env file in the same directory as docker-compose.yaml
|
||||||
|
|
||||||
services:
|
services:
|
||||||
logs_collector:
|
logs_collector:
|
||||||
container_name: logs_collector
|
container_name: logs-collector
|
||||||
build:
|
build:
|
||||||
context: .
|
context: .
|
||||||
expose:
|
args:
|
||||||
- 8000
|
- VERSION=${VERSION}
|
||||||
|
- SRC_DIR=${SRC_DIR}
|
||||||
|
- SCRIPTS_DIR=${SCRIPTS_DIR}
|
||||||
|
- APP_DIR=${APP_DIR}
|
||||||
|
- WEB_PORT=${WEB_PORT}
|
||||||
|
- USER_NAME=${USER_NAME}
|
||||||
|
- USER_GROUP=${USER_GROUP}
|
||||||
|
- APP_UID=${APP_UID}
|
||||||
|
- APP_GID=${APP_GID}
|
||||||
ports:
|
ports:
|
||||||
- "8000:8000"
|
- "${WEB_HOST}:${WEB_PORT}:${WEB_PORT}"
|
||||||
volumes:
|
volumes:
|
||||||
- ./logs_collector/db.sqlite3:/app/db.sqlite3
|
- type: volume
|
||||||
- ./logs_collector/archives:/app/archives
|
source: logs_collector_data
|
||||||
|
target: ${APP_DIR}/data
|
||||||
env_file:
|
env_file:
|
||||||
- ./logs_collector/.env
|
- ./.env
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
logs_collector_data:
|
||||||
|
Loading…
Reference in New Issue
Block a user