-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDockerfile
More file actions
46 lines (32 loc) · 1.08 KB
/
Dockerfile
File metadata and controls
46 lines (32 loc) · 1.08 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
ARG BASE_TAG=latest
FROM ghcr.io/emb3rs-project/embers-base:${BASE_TAG} as build
# creating the environment
COPY environment-py39.yml .
RUN --mount=type=cache,target=/opt/conda/pkgs mamba env create -f environment-py39.yml
# Installing Conda Pack
RUN --mount=type=cache,target=/opt/conda/pkgs conda install -c conda-forge conda-pack
# Use conda-pack to create a standalone enviornment
# in /venv:
RUN conda-pack -n cf-grpc-module -o /tmp/env.tar && \
mkdir /venv && cd /venv && tar xf /tmp/env.tar && \
rm /tmp/env.tar
# We've put venv in same path it'll be in final image,
# so now fix up paths:
RUN /venv/bin/conda-unpack
FROM python:3.10-slim as runtime
# setup config
ENV GROUP_ID=1000 \
USER_ID=1000
ENV PYTHONUNBUFFERED=1 \
PYTHONIOENCODING=UTF-8
COPY --from=build /venv /venv
# Configuring app
WORKDIR /app
COPY . .
ENV PYTHONPATH=ms_grpc/plibs:module
EXPOSE 50051
SHELL [ "/bin/bash", "-c" ]
RUN echo 'source /venv/bin/activate' >> ~/.bashrc && source ~/.bashrc
ENTRYPOINT source /venv/bin/activate && \
PYTHONPATH=ms_grpc/plibs:module \
python -u server.py