cmd/storagenode: use Debian as base image instead of alpine
We are switching from alpine to debian due to a network issue introduced in alpine 3.13+ which fails to verify certificates due to not all armhf boards meet the time64 requirement: https://wiki.alpinelinux.org/wiki/Release_Notes_for_Alpine_3.13.0\#time64_requirements Also, Debian does not have official imagess for arm32v6 architecture so we are building with arm32v5 arch in the Makefile. Change-Id: I3660c3f64b7c2b342dd4ccb876af5f4e3036ea9d
This commit is contained in:
parent
048d3b497d
commit
c641f4c9ac
42
Makefile
42
Makefile
@ -219,8 +219,8 @@ satellite-image: satellite_linux_arm satellite_linux_arm64 satellite_linux_amd64
|
|||||||
storagenode-image: ## Build storagenode Docker image
|
storagenode-image: ## Build storagenode Docker image
|
||||||
${DOCKER_BUILD} --pull=true -t storjlabs/storagenode:${TAG}${CUSTOMTAG}-amd64 \
|
${DOCKER_BUILD} --pull=true -t storjlabs/storagenode:${TAG}${CUSTOMTAG}-amd64 \
|
||||||
-f cmd/storagenode/Dockerfile .
|
-f cmd/storagenode/Dockerfile .
|
||||||
${DOCKER_BUILD} --pull=true -t storjlabs/storagenode:${TAG}${CUSTOMTAG}-arm32v6 \
|
${DOCKER_BUILD} --pull=true -t storjlabs/storagenode:${TAG}${CUSTOMTAG}-arm32v5 \
|
||||||
--build-arg=GOARCH=arm --build-arg=DOCKER_ARCH=arm32v6 --build-arg=DOCKER_PLATFORM=linux/arm/v6 \
|
--build-arg=GOARCH=arm --build-arg=DOCKER_ARCH=arm32v5 --build-arg=DOCKER_PLATFORM=linux/arm/v6 \
|
||||||
-f cmd/storagenode/Dockerfile .
|
-f cmd/storagenode/Dockerfile .
|
||||||
${DOCKER_BUILD} --pull=true -t storjlabs/storagenode:${TAG}${CUSTOMTAG}-arm64v8 \
|
${DOCKER_BUILD} --pull=true -t storjlabs/storagenode:${TAG}${CUSTOMTAG}-arm64v8 \
|
||||||
--build-arg=GOARCH=arm64 --build-arg=DOCKER_ARCH=arm64v8 --build-arg=DOCKER_PLATFORM=linux/arm64 \
|
--build-arg=GOARCH=arm64 --build-arg=DOCKER_ARCH=arm64v8 --build-arg=DOCKER_PLATFORM=linux/arm64 \
|
||||||
@ -230,8 +230,8 @@ storagenode-image: ## Build storagenode Docker image
|
|||||||
storagenode-base-image: ## Build storagenode Docker base image. Requires buildx. This image is expected to be built manually using buildx and QEMU.
|
storagenode-base-image: ## Build storagenode Docker base image. Requires buildx. This image is expected to be built manually using buildx and QEMU.
|
||||||
${DOCKER_BUILDX} --pull=true -t storjlabs/storagenode-base:${GIT_TAG}${CUSTOMTAG}-amd64 \
|
${DOCKER_BUILDX} --pull=true -t storjlabs/storagenode-base:${GIT_TAG}${CUSTOMTAG}-amd64 \
|
||||||
-f cmd/storagenode/Dockerfile.base .
|
-f cmd/storagenode/Dockerfile.base .
|
||||||
${DOCKER_BUILDX} --pull=true -t storjlabs/storagenode-base:${GIT_TAG}${CUSTOMTAG}-arm32v6 \
|
${DOCKER_BUILDX} --pull=true -t storjlabs/storagenode-base:${GIT_TAG}${CUSTOMTAG}-arm32v5 \
|
||||||
--build-arg=GOARCH=arm --build-arg=DOCKER_ARCH=arm32v6 \
|
--build-arg=GOARCH=arm --build-arg=DOCKER_ARCH=arm32v5 \
|
||||||
-f cmd/storagenode/Dockerfile.base .
|
-f cmd/storagenode/Dockerfile.base .
|
||||||
${DOCKER_BUILDX} --pull=true -t storjlabs/storagenode-base:${GIT_TAG}${CUSTOMTAG}-arm64v8 \
|
${DOCKER_BUILDX} --pull=true -t storjlabs/storagenode-base:${GIT_TAG}${CUSTOMTAG}-arm64v8 \
|
||||||
--build-arg=GOARCH=arm64 --build-arg=DOCKER_ARCH=arm64v8 \
|
--build-arg=GOARCH=arm64 --build-arg=DOCKER_ARCH=arm64v8 \
|
||||||
@ -240,16 +240,16 @@ storagenode-base-image: ## Build storagenode Docker base image. Requires buildx.
|
|||||||
.PHONY: push-storagenode-base-image
|
.PHONY: push-storagenode-base-image
|
||||||
push-storagenode-base-image: ## Push the storagenode base image to dockerhub
|
push-storagenode-base-image: ## Push the storagenode base image to dockerhub
|
||||||
docker push storjlabs/storagenode-base:${GIT_TAG}${CUSTOMTAG}-amd64
|
docker push storjlabs/storagenode-base:${GIT_TAG}${CUSTOMTAG}-amd64
|
||||||
docker push storjlabs/storagenode-base:${GIT_TAG}${CUSTOMTAG}-arm32v6
|
docker push storjlabs/storagenode-base:${GIT_TAG}${CUSTOMTAG}-arm32v5
|
||||||
docker push storjlabs/storagenode-base:${GIT_TAG}${CUSTOMTAG}-arm64v8
|
docker push storjlabs/storagenode-base:${GIT_TAG}${CUSTOMTAG}-arm64v8
|
||||||
# create, annotate and push manifests for latest-amd64
|
# create, annotate and push manifests for latest-amd64
|
||||||
docker manifest create storjlabs/storagenode-base:latest-amd64 storjlabs/storagenode-base:${GIT_TAG}${CUSTOMTAG}-amd64
|
docker manifest create storjlabs/storagenode-base:latest-amd64 storjlabs/storagenode-base:${GIT_TAG}${CUSTOMTAG}-amd64
|
||||||
docker manifest annotate storjlabs/storagenode-base:latest-amd64 storjlabs/storagenode-base:${GIT_TAG}${CUSTOMTAG}-amd64 --os linux --arch amd64
|
docker manifest annotate storjlabs/storagenode-base:latest-amd64 storjlabs/storagenode-base:${GIT_TAG}${CUSTOMTAG}-amd64 --os linux --arch amd64
|
||||||
docker manifest push --purge storjlabs/storagenode-base:latest-amd64
|
docker manifest push --purge storjlabs/storagenode-base:latest-amd64
|
||||||
# create, annotate and push manifests for latest-arm32v6
|
# create, annotate and push manifests for latest-arm32v5
|
||||||
docker manifest create storjlabs/storagenode-base:latest-arm32v6 storjlabs/storagenode-base:${GIT_TAG}${CUSTOMTAG}-arm32v6
|
docker manifest create storjlabs/storagenode-base:latest-arm32v5 storjlabs/storagenode-base:${GIT_TAG}${CUSTOMTAG}-arm32v5
|
||||||
docker manifest annotate storjlabs/storagenode-base:latest-arm32v6 storjlabs/storagenode-base:${GIT_TAG}${CUSTOMTAG}-arm32v6 --os linux --arch arm --variant v6
|
docker manifest annotate storjlabs/storagenode-base:latest-arm32v5 storjlabs/storagenode-base:${GIT_TAG}${CUSTOMTAG}-arm32v5 --os linux --arch arm --variant v6
|
||||||
docker manifest push --purge storjlabs/storagenode-base:latest-arm32v6
|
docker manifest push --purge storjlabs/storagenode-base:latest-arm32v5
|
||||||
# create, annotate and push manifests for latest-arm64v8
|
# create, annotate and push manifests for latest-arm64v8
|
||||||
docker manifest create storjlabs/storagenode-base:latest-arm64v8 storjlabs/storagenode-base:${GIT_TAG}${CUSTOMTAG}-arm64v8
|
docker manifest create storjlabs/storagenode-base:latest-arm64v8 storjlabs/storagenode-base:${GIT_TAG}${CUSTOMTAG}-arm64v8
|
||||||
docker manifest annotate storjlabs/storagenode-base:latest-arm64v8 storjlabs/storagenode-base:${GIT_TAG}${CUSTOMTAG}-arm64v8 --os linux --arch arm64 --variant v8
|
docker manifest annotate storjlabs/storagenode-base:latest-arm64v8 storjlabs/storagenode-base:${GIT_TAG}${CUSTOMTAG}-arm64v8 --os linux --arch arm64 --variant v8
|
||||||
@ -258,10 +258,10 @@ push-storagenode-base-image: ## Push the storagenode base image to dockerhub
|
|||||||
for t in ${GIT_TAG}${CUSTOMTAG} latest; do \
|
for t in ${GIT_TAG}${CUSTOMTAG} latest; do \
|
||||||
docker manifest create storjlabs/storagenode-base:$$t \
|
docker manifest create storjlabs/storagenode-base:$$t \
|
||||||
storjlabs/storagenode-base:${GIT_TAG}${CUSTOMTAG}-amd64 \
|
storjlabs/storagenode-base:${GIT_TAG}${CUSTOMTAG}-amd64 \
|
||||||
storjlabs/storagenode-base:${GIT_TAG}${CUSTOMTAG}-arm32v6 \
|
storjlabs/storagenode-base:${GIT_TAG}${CUSTOMTAG}-arm32v5 \
|
||||||
storjlabs/storagenode-base:${GIT_TAG}${CUSTOMTAG}-arm64v8 \
|
storjlabs/storagenode-base:${GIT_TAG}${CUSTOMTAG}-arm64v8 \
|
||||||
&& docker manifest annotate storjlabs/storagenode-base:$$t storjlabs/storagenode-base:${GIT_TAG}${CUSTOMTAG}-amd64 --os linux --arch amd64 \
|
&& docker manifest annotate storjlabs/storagenode-base:$$t storjlabs/storagenode-base:${GIT_TAG}${CUSTOMTAG}-amd64 --os linux --arch amd64 \
|
||||||
&& docker manifest annotate storjlabs/storagenode-base:$$t storjlabs/storagenode-base:${GIT_TAG}${CUSTOMTAG}-arm32v6 --os linux --arch arm --variant v6 \
|
&& docker manifest annotate storjlabs/storagenode-base:$$t storjlabs/storagenode-base:${GIT_TAG}${CUSTOMTAG}-arm32v5 --os linux --arch arm --variant v6 \
|
||||||
&& docker manifest annotate storjlabs/storagenode-base:$$t storjlabs/storagenode-base:${GIT_TAG}${CUSTOMTAG}-arm64v8 --os linux --arch arm64 --variant v8 \
|
&& docker manifest annotate storjlabs/storagenode-base:$$t storjlabs/storagenode-base:${GIT_TAG}${CUSTOMTAG}-arm64v8 --os linux --arch arm64 --variant v8 \
|
||||||
&& docker manifest push --purge storjlabs/storagenode-base:$$t \
|
&& docker manifest push --purge storjlabs/storagenode-base:$$t \
|
||||||
; done
|
; done
|
||||||
@ -370,9 +370,9 @@ sign-windows-installer:
|
|||||||
##@ Deploy
|
##@ Deploy
|
||||||
|
|
||||||
.PHONY: push-images
|
.PHONY: push-images
|
||||||
push-images: ## Push Docker images to Docker Hub (jenkins)
|
push-images: push-storagenode-images ## Push Docker images to Docker Hub (jenkins)
|
||||||
# images have to be pushed before a manifest can be created
|
# images have to be pushed before a manifest can be created
|
||||||
for c in multinode satellite storagenode uplink versioncontrol ; do \
|
for c in multinode satellite uplink versioncontrol ; do \
|
||||||
docker push storjlabs/$$c:${TAG}${CUSTOMTAG}-amd64 \
|
docker push storjlabs/$$c:${TAG}${CUSTOMTAG}-amd64 \
|
||||||
&& docker push storjlabs/$$c:${TAG}${CUSTOMTAG}-arm32v6 \
|
&& docker push storjlabs/$$c:${TAG}${CUSTOMTAG}-arm32v6 \
|
||||||
&& docker push storjlabs/$$c:${TAG}${CUSTOMTAG}-arm64v8 \
|
&& docker push storjlabs/$$c:${TAG}${CUSTOMTAG}-arm64v8 \
|
||||||
@ -388,6 +388,22 @@ push-images: ## Push Docker images to Docker Hub (jenkins)
|
|||||||
; done \
|
; done \
|
||||||
; done
|
; done
|
||||||
|
|
||||||
|
.PHONY: push-storagenode-images
|
||||||
|
push-storagenode-images:
|
||||||
|
docker push storjlabs/storagenode:${TAG}${CUSTOMTAG}-amd64 \
|
||||||
|
&& docker push storjlabs/storagenode:${TAG}${CUSTOMTAG}-arm32v5 \
|
||||||
|
&& docker push storjlabs/storagenode:${TAG}${CUSTOMTAG}-arm64v8 \
|
||||||
|
&& for t in ${TAG}${CUSTOMTAG} ${LATEST_TAG}; do \
|
||||||
|
docker manifest create storjlabs/storagenode:$$t \
|
||||||
|
storjlabs/storagenode:${TAG}${CUSTOMTAG}-amd64 \
|
||||||
|
storjlabs/storagenode:${TAG}${CUSTOMTAG}-arm32v5 \
|
||||||
|
storjlabs/storagenode:${TAG}${CUSTOMTAG}-arm64v8 \
|
||||||
|
&& docker manifest annotate storjlabs/storagenode:$$t storjlabs/storagenode:${TAG}${CUSTOMTAG}-amd64 --os linux --arch amd64 \
|
||||||
|
&& docker manifest annotate storjlabs/storagenode:$$t storjlabs/storagenode:${TAG}${CUSTOMTAG}-arm32v5 --os linux --arch arm --variant v5 \
|
||||||
|
&& docker manifest annotate storjlabs/storagenode:$$t storjlabs/storagenode:${TAG}${CUSTOMTAG}-arm64v8 --os linux --arch arm64 --variant v8 \
|
||||||
|
&& docker manifest push --purge storjlabs/storagenode:$$t \
|
||||||
|
; done
|
||||||
|
|
||||||
.PHONY: binaries-upload
|
.PHONY: binaries-upload
|
||||||
binaries-upload: ## Upload binaries to Google Storage (jenkins)
|
binaries-upload: ## Upload binaries to Google Storage (jenkins)
|
||||||
cd "release/${TAG}"; for f in *; do \
|
cd "release/${TAG}"; for f in *; do \
|
||||||
|
@ -1,7 +1,9 @@
|
|||||||
ARG DOCKER_ARCH
|
ARG DOCKER_ARCH
|
||||||
|
|
||||||
FROM ${DOCKER_ARCH:-amd64}/alpine:3.15
|
FROM ${DOCKER_ARCH:-amd64}/debian:buster-slim
|
||||||
RUN apk --no-cache -U add ca-certificates supervisor wget
|
RUN apt-get update \
|
||||||
|
&& apt-get install -y --no-install-recommends ca-certificates supervisor unzip wget
|
||||||
|
RUN update-ca-certificates
|
||||||
RUN mkdir -p /var/log/supervisor /app
|
RUN mkdir -p /var/log/supervisor /app
|
||||||
COPY cmd/storagenode/docker-base/ /
|
COPY cmd/storagenode/docker-base/ /
|
||||||
# set permissions to allow non-root access
|
# set permissions to allow non-root access
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
#!/bin/sh
|
#!/bin/bash
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
|
||||||
get_default_url() {
|
get_default_url() {
|
||||||
@ -77,7 +77,7 @@ if [ -n "${WALLET:-}" ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "${SETUP:-}" = "true" ]; then
|
if [ "${SETUP:-}" = "true" ]; then
|
||||||
echo "Running ./storagenode setup $SNO_RUN_PARAMS"
|
echo "Running ./storagenode setup $SNO_RUN_PARAMS ${*}"
|
||||||
exec ./storagenode setup ${SNO_RUN_PARAMS} ${*}
|
exec ./storagenode setup ${SNO_RUN_PARAMS} ${*}
|
||||||
else
|
else
|
||||||
sed -i \
|
sed -i \
|
||||||
|
Loading…
Reference in New Issue
Block a user