Skip to content

Commit c967b41

Browse files
Fix orjson build on arm64 (#622)
1 parent d5d278b commit c967b41

File tree

5 files changed

+27
-47
lines changed

5 files changed

+27
-47
lines changed

.github/workflows/build.yml

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,12 @@ jobs:
2727
strategy:
2828
matrix:
2929
image:
30-
# - name: default
31-
# suffix: ''
32-
# platforms: linux/amd64,linux/arm64
33-
# dockerfile: Dockerfile
34-
# build_args: 'DIPDUP_DOCKER_IMAGE=default'
30+
# FIXME: Revert after fixing orjson build
31+
- name: default
32+
suffix: ''
33+
platforms: linux/amd64,linux/arm64
34+
dockerfile: Dockerfile
35+
build_args: 'DIPDUP_DOCKER_IMAGE=default'
3536

3637
# - name: pytezos
3738
# suffix: -pytezos

.github/workflows/release.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ jobs:
7373
- name: Set up Poetry
7474
uses: snok/install-poetry@v1
7575
with:
76-
version: '1.3.2'
76+
version: '1.4.0'
7777

7878
- name: Install project
7979
run: make install

Dockerfile

Lines changed: 17 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -3,62 +3,42 @@ FROM python:3.10-slim-buster AS compile-image
33
ARG DIPDUP_DOCKER_IMAGE=default
44
ENV DIPDUP_DOCKER=1
55
ENV 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-
2014
WORKDIR /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

3521
FROM python:3.10-slim-buster AS build-image
3622

3723
ARG DIPDUP_DOCKER_IMAGE=default
3824
ENV DIPDUP_DOCKER=1
3925
ENV 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

5434
USER dipdup
55-
ENV PATH="/opt/dipdup/.venv/bin:$PATH"
35+
ENV PATH="/opt/dipdup/bin:$PATH"
5636
ENV PYTHONPATH="/home/dipdup:/home/dipdup/src:/opt/dipdup/src:/opt/dipdup/lib/python3.10/site-packages:$PYTHONPATH"
5737
WORKDIR /home/dipdup/
5838
ENTRYPOINT ["dipdup"]
5939
CMD ["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
6343
COPY --chown=dipdup --from=compile-image /opt/dipdup /opt/dipdup
6444
COPY --chown=dipdup . /opt/dipdup

Dockerfile.slim

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ RUN apk add --update --no-cache build-base gcc musl-dev python3-dev libffi-dev o
55
touch /opt/dipdup/src/dipdup/__init__.py
66
WORKDIR /opt/dipdup
77
ENV PATH="/opt/dipdup/bin:$PATH"
8-
ENV PYTHON_PATH="/opt/dipdup/src:$PATH"
98

109
COPY pyproject.toml requirements.slim.txt README.md /opt/dipdup/
1110

Makefile

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -60,13 +60,13 @@ image: ## Build all Docker images
6060
make image-slim
6161

6262
image-default: ## Build default Docker image
63-
docker buildx build . --progress plain -t dipdup:${TAG} --build-arg DIPDUP_DOCKER_IMAGE=default
63+
docker buildx build . --load --progress plain -t dipdup:${TAG} --build-arg DIPDUP_DOCKER_IMAGE=default
6464

6565
image-pytezos: ## Build pytezos Docker image
66-
docker buildx build . --progress plain -t dipdup:${TAG}-pytezos --build-arg DIPDUP_DOCKER_IMAGE=pytezos
66+
docker buildx build . --load --progress plain -t dipdup:${TAG}-pytezos --build-arg DIPDUP_DOCKER_IMAGE=pytezos
6767

6868
image-slim: ## Build slim Docker image
69-
docker buildx build . --progress plain -t dipdup:${TAG}-slim -f Dockerfile.slim
69+
docker buildx build . --load --progress plain -t dipdup:${TAG}-slim -f Dockerfile.slim
7070

7171
##
7272

0 commit comments

Comments
 (0)