Adding QEMU static arm binary to build ARM images
This commit is contained in:
@@ -9,17 +9,20 @@ env:
|
|||||||
- DOCKER_BUILD=qmcgaw/private-internet-access
|
- DOCKER_BUILD=qmcgaw/private-internet-access
|
||||||
- MICROBADGER_CODE=tQFy7AxtSUNANPe6aoVChYdsI_I=
|
- MICROBADGER_CODE=tQFy7AxtSUNANPe6aoVChYdsI_I=
|
||||||
matrix:
|
matrix:
|
||||||
|
- TARGET_IMAGE=${DOCKER_BUILD}
|
||||||
- ARCH=armhf
|
- ARCH=armhf
|
||||||
BASE_IMAGE=arm32v6/alpine
|
BASE_IMAGE=arm32v6/alpine
|
||||||
TARGET_IMAGE=${DOCKER_BUILD}:${ARCH}
|
TARGET_IMAGE=${DOCKER_BUILD}:${ARCH}
|
||||||
|
QEMU=https://github.com/multiarch/qemu-user-static/releases/download/v3.1.0-3/qemu-arm-static
|
||||||
- ARCH=aarch64
|
- ARCH=aarch64
|
||||||
BASE_IMAGE=arm64v8/alpine
|
BASE_IMAGE=arm64v8/alpine
|
||||||
TARGET_IMAGE=${DOCKER_BUILD}:${ARCH}
|
TARGET_IMAGE=${DOCKER_BUILD}:${ARCH}
|
||||||
|
QEMU=https://github.com/multiarch/qemu-user-static/releases/download/v3.1.0-3/qemu-arm-static
|
||||||
script:
|
script:
|
||||||
- set -e
|
- set -e
|
||||||
- echo "$DOCKER_PASSWORD" | docker login -u qmcgaw --password-stdin
|
- echo "$DOCKER_PASSWORD" | docker login -u qmcgaw --password-stdin
|
||||||
- docker run --rm --privileged multiarch/qemu-user-static:register --reset
|
- docker run --rm --privileged multiarch/qemu-user-static:register --reset
|
||||||
- docker build -t ${TARGET_IMAGE} --build-arg BASE_IMAGE=${BASE_IMAGE} --build-arg VCF=${TRAVIS_COMMIT} --build-arg BUILD_DATE="$(date -u +"%Y-%m-%dT%H:%M:%SZ")" .
|
- docker build -t ${TARGET_IMAGE} --build-arg BASE_IMAGE=${BASE_IMAGE} --build-arg QEMU=${QEMU} --build-arg VCF=${TRAVIS_COMMIT} --build-arg BUILD_DATE="$(date -u +"%Y-%m-%dT%H:%M:%SZ")" .
|
||||||
- '[ "${TRAVIS_PULL_REQUEST}" = "false" ] && docker push ${DOCKER_BUILD} || false'
|
- '[ "${TRAVIS_PULL_REQUEST}" = "false" ] && docker push ${DOCKER_BUILD} || false'
|
||||||
- "curl -X POST https://hooks.microbadger.com/images/${DOCKER_BUILD}/${MICROBADGER_CODE}"
|
- "curl -X POST https://hooks.microbadger.com/images/${DOCKER_BUILD}/${MICROBADGER_CODE}"
|
||||||
|
|
||||||
@@ -1,8 +1,11 @@
|
|||||||
ARG BASE_IMAGE
|
ARG BASE_IMAGE
|
||||||
|
|
||||||
FROM ${BASE_IMAGE:-alpine}:3.9
|
FROM ${BASE_IMAGE:-alpine}:3.9
|
||||||
|
ARG QEMU=
|
||||||
ARG BUILD_DATE
|
ARG BUILD_DATE
|
||||||
ARG VCS_REF
|
ARG VCS_REF
|
||||||
|
# Only installed for ARM devices
|
||||||
|
ADD .void ${QEMU}? /usr/bin/
|
||||||
LABEL org.label-schema.schema-version="1.0.0-rc1" \
|
LABEL org.label-schema.schema-version="1.0.0-rc1" \
|
||||||
maintainer="quentin.mcgaw@gmail.com" \
|
maintainer="quentin.mcgaw@gmail.com" \
|
||||||
org.label-schema.build-date=$BUILD_DATE \
|
org.label-schema.build-date=$BUILD_DATE \
|
||||||
@@ -64,4 +67,5 @@ RUN chown nonrootuser -R /etc/unbound && \
|
|||||||
/etc/unbound/root.hints \
|
/etc/unbound/root.hints \
|
||||||
/etc/unbound/root.key \
|
/etc/unbound/root.key \
|
||||||
/etc/unbound/unbound.conf \
|
/etc/unbound/unbound.conf \
|
||||||
/etc/unbound/*.bz2
|
/etc/unbound/*.bz2 && \
|
||||||
|
rm -f /usr/bin/qemu-arm-static /usr/bin/.void
|
||||||
|
|||||||
23
README.md
23
README.md
@@ -75,7 +75,7 @@
|
|||||||
modprobe tun
|
modprobe tun
|
||||||
```
|
```
|
||||||
|
|
||||||
1. **IF YOU HAVE AN ARM DEVICE, depending on your cpu architecture:** replace `qmcgaw/private-internet-access`
|
1. **ONLY IF YOU HAVE AN ARM DEVICE, depending on your cpu architecture,** replace `qmcgaw/private-internet-access`
|
||||||
with either `qmcgaw/private-internet-access:armhf` (32 bit) or `qmcgaw/private-internet-access:aarch64` (64 bit).
|
with either `qmcgaw/private-internet-access:armhf` (32 bit) or `qmcgaw/private-internet-access:aarch64` (64 bit).
|
||||||
|
|
||||||
1. Launch the container with:
|
1. Launch the container with:
|
||||||
@@ -246,6 +246,27 @@ services:
|
|||||||
# add more volumes etc.
|
# add more volumes etc.
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## ARM devices
|
||||||
|
|
||||||
|
If you want to save 3-5MB on the image (because of QEMU), use the following command on
|
||||||
|
your ARM device:
|
||||||
|
|
||||||
|
- If your architecture is ARMHF (32 bit)
|
||||||
|
|
||||||
|
```sh
|
||||||
|
docker build -t qmcgaw/private-internet-access:armhf \
|
||||||
|
--build-arg BASE_IMAGE=arm32v6/alpine \
|
||||||
|
https://github.com/qdm12/private-internet-access-docker.git
|
||||||
|
```
|
||||||
|
|
||||||
|
- If your architecture is AARCH64 (64 bit)
|
||||||
|
|
||||||
|
```sh
|
||||||
|
docker build -t qmcgaw/private-internet-access:aarch64 \
|
||||||
|
--build-arg BASE_IMAGE=arm64v8/alpine \
|
||||||
|
https://github.com/qdm12/private-internet-access-docker.git
|
||||||
|
```
|
||||||
|
|
||||||
## For the paranoids
|
## For the paranoids
|
||||||
|
|
||||||
- You can review the code which essential consits in the [Dockerfile](https://github.com/qdm12/private-internet-access-docker/blob/master/Dockerfile) and [entrypoint.sh](https://github.com/qdm12/private-internet-access-docker/blob/master/entrypoint.sh)
|
- You can review the code which essential consits in the [Dockerfile](https://github.com/qdm12/private-internet-access-docker/blob/master/Dockerfile) and [entrypoint.sh](https://github.com/qdm12/private-internet-access-docker/blob/master/entrypoint.sh)
|
||||||
|
|||||||
Reference in New Issue
Block a user