@@ -3,62 +3,42 @@ FROM python:3.10-slim-buster AS compile-image
33ARG DIPDUP_DOCKER_IMAGE=default
44ENV DIPDUP_DOCKER=1
55ENV DIPDUP_DOCKER_IMAGE=${DIPDUP_DOCKER_IMAGE}
6- ENV POETRY_VIRTUALENVS_IN_PROJECT=true
76
8- SHELL ["/bin/bash" , "-euxo" , "pipefail" , "-c" ]
9- RUN <<eot
10- apt update
11- apt install -y gcc make git `if [[ $DIPDUP_DOCKER_IMAGE = "pytezos" ]]; then echo build-essential pkg-config libsodium-dev libsecp256k1-dev libgmp-dev; fi`
12-
13- pip install --no-cache-dir poetry==1.3.2
14-
15- mkdir -p /opt/dipdup
16-
7+ SHELL ["/bin/bash" , "-o" , "pipefail" , "-c" ]
8+ RUN apt update && \
9+ apt install -y gcc make git curl `if [[ $DIPDUP_DOCKER_IMAGE = "pytezos" ]]; then echo build-essential pkg-config libsodium-dev libsecp256k1-dev libgmp-dev; fi` && \
10+ python -m venv --without-pip --system-site-packages /opt/dipdup && \
11+ mkdir -p /opt/dipdup/src/dipdup/ && \
12+ touch /opt/dipdup/src/dipdup/__init__.py && \
1713 rm -r /var/log/* /var/lib/apt/lists/* /var/cache/* /var/lib/dpkg/status*
18- eot
19-
2014WORKDIR /opt/dipdup
21- ENV PATH="/opt/dipdup/.venv/bin:$PATH"
22-
23- COPY --chown=dipdup Makefile pyproject.toml poetry.lock README.md /opt/dipdup/
15+ ENV PATH="/opt/dipdup/bin:$PATH"
2416
25- RUN <<eot
26- # We want to copy our code at the last layer but not to break poetry's "packages" section
27- mkdir -p /opt/dipdup/src/dipdup
28- touch /opt/dipdup/src/dipdup/__init__.py
17+ COPY pyproject.toml requirements.txt requirements.pytezos.txt README.md /opt/dipdup/
2918
30- make install DEV=0 `if [[ $DIPDUP_DOCKER_IMAGE = "pytezos" ]]; then echo PYTEZOS=1; fi`
31-
32- rm -r /root/.cache/
33- eot
19+ RUN /usr/local/bin/pip install --prefix /opt/dipdup --no-cache-dir --disable-pip-version-check --no-deps -r /opt/dipdup/requirements.`if [[ $DIPDUP_DOCKER_IMAGE = "pytezos" ]]; then echo "pytezos." ; fi`txt -e .
3420
3521FROM python:3.10-slim-buster AS build-image
3622
3723ARG DIPDUP_DOCKER_IMAGE=default
3824ENV DIPDUP_DOCKER=1
3925ENV DIPDUP_DOCKER_IMAGE=${DIPDUP_DOCKER_IMAGE}
40- ENV POETRY_VIRTUALENVS_IN_PROJECT=true
41-
42- SHELL ["/bin/bash" , "-c" ]
43-
44- RUN <<eot
45- useradd -ms /bin/bash dipdup
46- pip install --no-cache-dir poetry==1.3.2 setuptools
47-
48- apt update
49- apt install -y --no-install-recommends git `if [[ $DIPDUP_DOCKER_IMAGE = "pytezos" ]]; then echo libsodium-dev libsecp256k1-dev libgmp-dev; fi`
5026
27+ SHELL ["/bin/bash" , "-o" , "pipefail" , "-c" ]
28+ RUN useradd -ms /bin/bash dipdup && \
29+ pip install --no-cache-dir poetry==1.4.0 setuptools && \
30+ apt update && \
31+ apt install -y --no-install-recommends git `if [[ $DIPDUP_DOCKER_IMAGE = "pytezos" ]]; then echo libsodium-dev libsecp256k1-dev libgmp-dev; fi` && \
5132 rm -r /var/log/* /var/lib/apt/lists/* /var/cache/* /var/lib/dpkg/status*
52- eot
5333
5434USER dipdup
55- ENV PATH="/opt/dipdup/.venv/ bin:$PATH"
35+ ENV PATH="/opt/dipdup/bin:$PATH"
5636ENV PYTHONPATH="/home/dipdup:/home/dipdup/src:/opt/dipdup/src:/opt/dipdup/lib/python3.10/site-packages:$PYTHONPATH"
5737WORKDIR /home/dipdup/
5838ENTRYPOINT ["dipdup" ]
5939CMD ["run" ]
6040
61- COPY --chown=dipdup --chmod=0755 scripts/install_dependencies.sh /opt/dipdup/.venv/ bin/install_dependencies
62- COPY --chown=dipdup --chmod=0755 scripts/install_dependencies.sh /opt/dipdup/.venv/ bin/inject_pyproject
41+ COPY --chown=dipdup --chmod=0755 scripts/install_dependencies.sh /opt/dipdup/bin/install_dependencies
42+ COPY --chown=dipdup --chmod=0755 scripts/install_dependencies.sh /opt/dipdup/bin/inject_pyproject
6343COPY --chown=dipdup --from=compile-image /opt/dipdup /opt/dipdup
6444COPY --chown=dipdup . /opt/dipdup
0 commit comments