forked from dipdup-io/dipdup
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDockerfile
More file actions
64 lines (47 loc) · 2.1 KB
/
Copy pathDockerfile
File metadata and controls
64 lines (47 loc) · 2.1 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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# syntax=docker/dockerfile:1.3-labs
FROM python:3.10-slim-buster AS compile-image
ARG DIPDUP_DOCKER_IMAGE=default
ENV DIPDUP_DOCKER=1
ENV DIPDUP_DOCKER_IMAGE=${DIPDUP_DOCKER_IMAGE}
ENV POETRY_VIRTUALENVS_IN_PROJECT=true
SHELL ["/bin/bash", "-euxo", "pipefail", "-c"]
RUN <<eot
apt update
apt install -y gcc make git `if [[ $DIPDUP_DOCKER_IMAGE = "pytezos" ]]; then echo build-essential pkg-config libsodium-dev libsecp256k1-dev libgmp-dev; fi`
pip install --no-cache-dir poetry==1.3.2
mkdir -p /opt/dipdup
rm -r /var/log/* /var/lib/apt/lists/* /var/cache/* /var/lib/dpkg/status*
eot
WORKDIR /opt/dipdup
ENV PATH="/opt/dipdup/.venv/bin:$PATH"
COPY --chown=dipdup Makefile pyproject.toml poetry.lock README.md /opt/dipdup/
RUN <<eot
# We want to copy our code at the last layer but not to break poetry's "packages" section
mkdir -p /opt/dipdup/src/dipdup
touch /opt/dipdup/src/dipdup/__init__.py
make install DEV=0 `if [[ $DIPDUP_DOCKER_IMAGE = "pytezos" ]]; then echo PYTEZOS=1; fi`
rm -r /root/.cache/
eot
FROM python:3.10-slim-buster AS build-image
ARG DIPDUP_DOCKER_IMAGE=default
ENV DIPDUP_DOCKER=1
ENV DIPDUP_DOCKER_IMAGE=${DIPDUP_DOCKER_IMAGE}
ENV POETRY_VIRTUALENVS_IN_PROJECT=true
SHELL ["/bin/bash", "-c"]
RUN <<eot
useradd -ms /bin/bash dipdup
pip install --no-cache-dir poetry==1.3.2 setuptools
apt update
apt install -y --no-install-recommends git `if [[ $DIPDUP_DOCKER_IMAGE = "pytezos" ]]; then echo libsodium-dev libsecp256k1-dev libgmp-dev; fi`
rm -r /var/log/* /var/lib/apt/lists/* /var/cache/* /var/lib/dpkg/status*
eot
USER dipdup
ENV PATH="/opt/dipdup/.venv/bin:$PATH"
ENV PYTHONPATH="/home/dipdup:/home/dipdup/src:/opt/dipdup/src:/opt/dipdup/lib/python3.10/site-packages:$PYTHONPATH"
WORKDIR /home/dipdup/
ENTRYPOINT ["dipdup"]
CMD ["run"]
COPY --chown=dipdup --chmod=0755 scripts/install_dependencies.sh /opt/dipdup/.venv/bin/install_dependencies
COPY --chown=dipdup --chmod=0755 scripts/install_dependencies.sh /opt/dipdup/.venv/bin/inject_pyproject
COPY --chown=dipdup --from=compile-image /opt/dipdup /opt/dipdup
COPY --chown=dipdup . /opt/dipdup