IceKhan13/purplecaffeine

API backend: Docker

mickahell opened this issue · 2 comments

Summary

Dockeurize the api, that can be running using flags.

Example of api_server/docker/Dockerfile :

FROM ubuntu:latest

ARG DEBIAN_FRONTEND=noninteractive
ARG  PROJECT_NAME=purplecaffeine

LABEL org.opencontainers.image.title="${PROJECT_NAME}" \
      org.opencontainers.image.authors=${GITHUB_ACTOR} \
      org.opencontainers.image.vendor=${GITHUB_REPOSITORY} \
      org.opencontainers.image.source="${PROJECT_URL}" \
      org.opencontainers.image.url="${PROJECT_URL}/tags" \
      org.opencontainers.image.description="API purplecaffeine" \
      org.opencontainers.image.os="ubuntu" \
      org.opencontainers.image.version=${GITHUB_REF}

COPY . /opt/purplecaffeine

RUN apt-get update -yq \
&& apt-get install python3-pip -y

RUN pip3 install --upgrade pip setuptools
RUN pip3 install -r /opt/purplecaffeine/requirements.txt

WORKDIR /opt/purplecaffeine

VOLUME /etc/purplecaffeine/conf/
EXPOSE 8080

ENTRYPOINT [ "/opt/purplecaffeine" ]
CMD [ "--help" ]

And so that can be run by calling from api_server/ :

docker run \
		--name purplecaffeine \
		-v $(PWD)/test:/etc/purplecaffeine/conf \
		-e PASS_DB=${PASS_DB} -e TOKEN_API=${TOKEN_API} \
		-p 8080:8080 \
		purplecaffeine:latest \
		-conf=/etc/purplecaffeine/conf/conf_docker.yaml \
		-swagger=/etc/purplecaffeine/conf/swagger.yaml

Or something similar.

See comment : #23 (comment)