mirror of
https://github.com/Retropex/dockerfile-deps.git
synced 2025-05-12 16:40:40 +02:00
Add support for aarch64
This commit is contained in:
parent
af06a3dc04
commit
bb49e1659e
@ -40,6 +40,39 @@ jobs:
|
||||
sudo docker build --pull -t $DOCKERHUB_DESTINATION -f "$DOCKERHUB_DOCKEFILE" "$NODE_NAME/$NODE_VERSION"
|
||||
sudo docker push $DOCKERHUB_DESTINATION
|
||||
|
||||
publish_linuxarm64v8:
|
||||
machine:
|
||||
docker_layer_caching: true
|
||||
steps:
|
||||
- checkout
|
||||
- run:
|
||||
command: |
|
||||
# If CIRCLE_TAG is "BitcoinCore/0.17.0"
|
||||
# Then:
|
||||
# $SEPARATOR=12
|
||||
# $NODE_NAME=BitcoinCore
|
||||
# $NODE_VERSION=0.17.0
|
||||
# $LATEST_TAG=0.17.0
|
||||
SEPARATOR=$(expr index "$CIRCLE_TAG" "/")
|
||||
NODE_NAME=${CIRCLE_TAG:0:$SEPARATOR-1}
|
||||
LATEST_TAG="${CIRCLE_TAG:$SEPARATOR}"
|
||||
NODE_VERSION="$LATEST_TAG"
|
||||
DOCKERHUB_REPO="btcpayserver/$NODE_NAME"
|
||||
DOCKERHUB_REPO="${DOCKERHUB_REPO,,}"
|
||||
DOCKERHUB_DESTINATION="$DOCKERHUB_REPO:$LATEST_TAG-arm64v8"
|
||||
DOCKERHUB_DOCKEFILE="$NODE_NAME/$NODE_VERSION/linuxarm64v8.Dockerfile"
|
||||
#
|
||||
# Make sure the builder is copy the arm emulator
|
||||
sudo docker run --rm --privileged multiarch/qemu-user-static:register --reset
|
||||
sudo apt update
|
||||
sudo apt install -y qemu qemu-user-static qemu-user binfmt-support
|
||||
sudo cp /usr/bin/qemu-arm-static "$(dirname "$DOCKERHUB_DOCKEFILE")/qemu-arm-static"
|
||||
sed -i -e 's/#EnableQEMU //g' "$DOCKERHUB_DOCKEFILE"
|
||||
#
|
||||
echo "Pushing $DOCKERHUB_DOCKEFILE to dockerhub repository $DOCKERHUB_DESTINATION"
|
||||
sudo docker login --username=$DOCKERHUB_USER --password=$DOCKERHUB_PASS
|
||||
sudo docker build --pull -t $DOCKERHUB_DESTINATION -f "$DOCKERHUB_DOCKEFILE" "$NODE_NAME/$NODE_VERSION"
|
||||
sudo docker push $DOCKERHUB_DESTINATION
|
||||
publish_linuxarm32v7:
|
||||
machine:
|
||||
docker_layer_caching: true
|
||||
@ -73,7 +106,6 @@ jobs:
|
||||
sudo docker login --username=$DOCKERHUB_USER --password=$DOCKERHUB_PASS
|
||||
sudo docker build --pull -t $DOCKERHUB_DESTINATION -f "$DOCKERHUB_DOCKEFILE" "$NODE_NAME/$NODE_VERSION"
|
||||
sudo docker push $DOCKERHUB_DESTINATION
|
||||
|
||||
publish_multiarch:
|
||||
machine:
|
||||
enabled: true
|
||||
@ -122,10 +154,18 @@ workflows:
|
||||
tags:
|
||||
# Example: BitcoinCore/0.17.0
|
||||
only: /^[^/]+[/][0-9]+(\.[0-9]+)*/
|
||||
- publish_multiarch:
|
||||
requires:
|
||||
- publish_linuxamd64
|
||||
- publish_linuxarm32v7
|
||||
- publish_linuxarm64v8:
|
||||
filters:
|
||||
branches:
|
||||
ignore: /.*/
|
||||
tags:
|
||||
# Example: BitcoinCore/0.17.0
|
||||
only: /^[^/]+[/][0-9]+(\.[0-9]+)*/
|
||||
- publish_multiarch:
|
||||
requires:
|
||||
- publish_linuxamd64
|
||||
- publish_linuxarm32v7
|
||||
- publish_linuxarm64v8
|
||||
filters:
|
||||
branches:
|
||||
ignore: /.*/
|
||||
|
43
Bitcoin/0.17.0/linuxarm64v8.Dockerfile
Normal file
43
Bitcoin/0.17.0/linuxarm64v8.Dockerfile
Normal file
@ -0,0 +1,43 @@
|
||||
# Use manifest image which support all architecture
|
||||
FROM debian:stretch-slim as builder
|
||||
|
||||
RUN set -ex \
|
||||
&& apt-get update \
|
||||
&& apt-get install -qq --no-install-recommends ca-certificates dirmngr gosu wget
|
||||
|
||||
ENV BITCOIN_VERSION 0.17.0
|
||||
ENV BITCOIN_URL https://bitcoincore.org/bin/bitcoin-core-0.17.0/bitcoin-0.17.0-aarch64-linux-gnu.tar.gz
|
||||
ENV BITCOIN_SHA256 1e430d8569c5431f6837a8a75e8634f12e1583b9062a5539b57147cda61035ed
|
||||
|
||||
# install bitcoin binaries
|
||||
RUN set -ex \
|
||||
&& cd /tmp \
|
||||
&& wget -qO bitcoin.tar.gz "$BITCOIN_URL" \
|
||||
&& echo "$BITCOIN_SHA256 bitcoin.tar.gz" | sha256sum -c - \
|
||||
&& mkdir bin \
|
||||
&& tar -xzvf bitcoin.tar.gz -C /tmp/bin --strip-components=2 "bitcoin-$BITCOIN_VERSION/bin/bitcoin-cli" "bitcoin-$BITCOIN_VERSION/bin/bitcoind"
|
||||
|
||||
# Making sure the builder build an arm image despite being x64
|
||||
FROM arm64v8/debian:stretch-slim
|
||||
|
||||
COPY --from=builder "/tmp/bin" /usr/local/bin
|
||||
#EnableQEMU COPY qemu-aarch64-static /usr/bin
|
||||
|
||||
RUN apt-get update && apt-get install -qq --no-install-recommends gosu && rm -rf /var/lib/apt/lists/*
|
||||
|
||||
RUN groupadd -r bitcoin && useradd -r -m -g bitcoin bitcoin
|
||||
|
||||
# create data directory
|
||||
ENV BITCOIN_DATA /data
|
||||
RUN mkdir "$BITCOIN_DATA" \
|
||||
&& chown -R bitcoin:bitcoin "$BITCOIN_DATA" \
|
||||
&& ln -sfn "$BITCOIN_DATA" /home/bitcoin/.bitcoin \
|
||||
&& chown -h bitcoin:bitcoin /home/bitcoin/.bitcoin
|
||||
|
||||
VOLUME /data
|
||||
|
||||
COPY docker-entrypoint.sh /entrypoint.sh
|
||||
ENTRYPOINT ["/entrypoint.sh"]
|
||||
|
||||
EXPOSE 8332 8333 18332 18333 18443 18444
|
||||
CMD ["bitcoind"]
|
Loading…
Reference in New Issue
Block a user