Revert "Add multi-arch build script (#21)"
This reverts commitcb9c54f996. This reverts commit36835c87f8.
This commit is contained in:
parent
36835c87f8
commit
1d6b5b8bec
@ -6,4 +6,3 @@ dumpcerts.sh
|
|||||||
acme.json
|
acme.json
|
||||||
acme-backup.json
|
acme-backup.json
|
||||||
traefik-certs-dumper
|
traefik-certs-dumper
|
||||||
build-docker.sh
|
|
||||||
|
|||||||
18
.travis.yml
18
.travis.yml
@ -1,13 +1,10 @@
|
|||||||
dist: xenial
|
|
||||||
|
|
||||||
language: go
|
language: go
|
||||||
|
|
||||||
go:
|
go:
|
||||||
- 1.11.x
|
- 1.11.x
|
||||||
- 1.x
|
- 1.x
|
||||||
|
|
||||||
services:
|
sudo: false
|
||||||
- docker
|
|
||||||
|
|
||||||
env:
|
env:
|
||||||
- GO111MODULE=on
|
- GO111MODULE=on
|
||||||
@ -26,13 +23,6 @@ install:
|
|||||||
- echo "TRAVIS_GO_VERSION=$TRAVIS_GO_VERSION"
|
- echo "TRAVIS_GO_VERSION=$TRAVIS_GO_VERSION"
|
||||||
- go mod download
|
- go mod download
|
||||||
|
|
||||||
before_deploy:
|
|
||||||
- >
|
|
||||||
if ! [ "$BEFORE_DEPLOY_RUN" ]; then
|
|
||||||
export BEFORE_DEPLOY_RUN=1;
|
|
||||||
echo "${DOCKER_PASSWORD}" | docker login -u "${DOCKER_USERNAME}" --password-stdin
|
|
||||||
fi
|
|
||||||
|
|
||||||
deploy:
|
deploy:
|
||||||
- provider: script
|
- provider: script
|
||||||
skip_cleanup: true
|
skip_cleanup: true
|
||||||
@ -40,9 +30,3 @@ deploy:
|
|||||||
on:
|
on:
|
||||||
tags: true
|
tags: true
|
||||||
condition: $TRAVIS_GO_VERSION =~ ^1\.x$
|
condition: $TRAVIS_GO_VERSION =~ ^1\.x$
|
||||||
- provider: script
|
|
||||||
skip_cleanup: true
|
|
||||||
script: make publish-images
|
|
||||||
on:
|
|
||||||
tags: true
|
|
||||||
condition: $TRAVIS_GO_VERSION =~ ^1\.x$
|
|
||||||
|
|||||||
@ -1,10 +1,5 @@
|
|||||||
FROM golang:1-alpine as builder
|
FROM golang:1-alpine as builder
|
||||||
|
|
||||||
ARG RUNTIME_HASH
|
|
||||||
ARG GOARCH
|
|
||||||
ARG GOARM
|
|
||||||
ARG GOOS
|
|
||||||
|
|
||||||
RUN apk --update upgrade \
|
RUN apk --update upgrade \
|
||||||
&& apk --no-cache --no-progress add git make gcc musl-dev
|
&& apk --no-cache --no-progress add git make gcc musl-dev
|
||||||
|
|
||||||
@ -15,9 +10,9 @@ COPY go.mod go.sum ./
|
|||||||
RUN go mod download
|
RUN go mod download
|
||||||
|
|
||||||
COPY . .
|
COPY . .
|
||||||
RUN GOARCH=${GOARCH} GOARM=${GOARM} GOOS=${GOOS} make build
|
RUN make build
|
||||||
|
|
||||||
FROM alpine:3.9${RUNTIME_HASH}
|
FROM alpine:3.9
|
||||||
RUN apk --update upgrade \
|
RUN apk --update upgrade \
|
||||||
&& apk --no-cache --no-progress add ca-certificates
|
&& apk --no-cache --no-progress add ca-certificates
|
||||||
|
|
||||||
|
|||||||
6
Makefile
6
Makefile
@ -16,11 +16,7 @@ clean:
|
|||||||
|
|
||||||
build: clean
|
build: clean
|
||||||
@echo Version: $(VERSION) $(BUILD_DATE)
|
@echo Version: $(VERSION) $(BUILD_DATE)
|
||||||
go build -v -ldflags '-X "github.com/ldez/traefik-certs-dumper/cmd.version=${VERSION}" -X "github.com/ldez/traefik-certs-dumper/cmd.commit=${SHA}" -X "github.com/ldez/traefik-certs-dumper/cmd.date=${BUILD_DATE}"' -o traefik-certs-dumper
|
go build -v -ldflags '-X "github.com/ldez/traefik-certs-dumper/cmd.version=${VERSION}" -X "github.com/ldez/traefik-certs-dumper/cmd.commit=${SHA}" -X "github.com/ldez/traefik-certs-dumper/cmd.date=${BUILD_DATE}"'
|
||||||
|
|
||||||
checks:
|
checks:
|
||||||
golangci-lint run
|
golangci-lint run
|
||||||
|
|
||||||
publish-images:
|
|
||||||
VERSION=$(TAG_NAME) ./build-docker.sh
|
|
||||||
VERSION="latest" ./build-docker.sh
|
|
||||||
|
|||||||
@ -1,85 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
set -o errexit
|
|
||||||
set -o pipefail
|
|
||||||
|
|
||||||
# safe guard
|
|
||||||
if [ -n "$TRAVIS_TAG" ] && [ -n "$VERSION" ]; then
|
|
||||||
echo "Deploying..."
|
|
||||||
else
|
|
||||||
echo "Skipping deploy"
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
# base docker image name
|
|
||||||
IMAGE_NAME="ldez/traefik-certs-dumper"
|
|
||||||
|
|
||||||
# only linux for now
|
|
||||||
OS=linux
|
|
||||||
|
|
||||||
# target platforms in docker manifest notation
|
|
||||||
declare -a PLATFORMS=( "amd64" "arm.v6" "arm.v7")
|
|
||||||
|
|
||||||
# images from Dockerfile
|
|
||||||
FROM_IMAGE=$(grep "{RUNTIME_HASH}" < Dockerfile | sed "s/FROM //" | sed 's/\$.*//')
|
|
||||||
|
|
||||||
# manifest cache file
|
|
||||||
MANIFEST_FILE=/tmp/tcd-manifest.${FROM_IMAGE}.json
|
|
||||||
|
|
||||||
# get platform image hash from docker manifest
|
|
||||||
function platformHash () {
|
|
||||||
local ARCHITECTURE VARIANT HASH
|
|
||||||
read -r ARCHITECTURE VARIANT <<< "$@"
|
|
||||||
|
|
||||||
if [ -z "$VARIANT" ]; then
|
|
||||||
HASH=$(jq -r ".manifests[] | select(.platform.architecture == \"$ARCHITECTURE\") | .digest" < "$MANIFEST_FILE")
|
|
||||||
else
|
|
||||||
HASH=$(jq -r ".manifests[] | select(.platform.architecture == \"$ARCHITECTURE\" and .platform.variant == \"$VARIANT\") | .digest" < "$MANIFEST_FILE")
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "$HASH"
|
|
||||||
}
|
|
||||||
|
|
||||||
# get manifest
|
|
||||||
if [ ! -f "$MANIFEST_FILE" ]; then
|
|
||||||
docker pull "$FROM_IMAGE"
|
|
||||||
DOCKER_CLI_EXPERIMENTAL=enabled docker manifest inspect "$FROM_IMAGE" > "$MANIFEST_FILE"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# create and push images
|
|
||||||
for platform in "${PLATFORMS[@]}"; do
|
|
||||||
# split architecture.version
|
|
||||||
IFS='.' read -r ARCHITECTURE VARIANT <<< "$platform"
|
|
||||||
|
|
||||||
# add xargs to trim whitespace
|
|
||||||
RUNTIME_HASH=$(platformHash "$ARCHITECTURE" "$VARIANT")
|
|
||||||
|
|
||||||
# arm architectures flavors, strip "v" prefix
|
|
||||||
GOARM=${VARIANT:1}
|
|
||||||
|
|
||||||
# build for target runtime image and architecture
|
|
||||||
docker build --build-arg="RUNTIME_HASH=@${RUNTIME_HASH}" --build-arg="GOARCH=${ARCHITECTURE}" --build-arg="GOARM=${GOARM}" -t "$IMAGE_NAME:${VERSION}-$platform" .
|
|
||||||
|
|
||||||
# push images
|
|
||||||
docker push "$IMAGE_NAME:${VERSION}-$platform"
|
|
||||||
done
|
|
||||||
|
|
||||||
# create manifest
|
|
||||||
TAG_LIST=$(printf "$IMAGE_NAME:${VERSION}-%s " "${PLATFORMS[@]}")
|
|
||||||
# shellcheck disable=SC2086
|
|
||||||
DOCKER_CLI_EXPERIMENTAL=enabled docker manifest create --amend "$IMAGE_NAME:${VERSION}" $TAG_LIST
|
|
||||||
|
|
||||||
for platform in "${PLATFORMS[@]}"; do
|
|
||||||
# split architecture.version
|
|
||||||
IFS='.' read -r ARCHITECTURE VARIANT <<< "$platform"
|
|
||||||
|
|
||||||
# docker and go architectures don't match
|
|
||||||
if [ "arm" == "$ARCHITECTURE" ] && [ -n "$VARIANT" ]; then
|
|
||||||
VARIANT="$ARCHITECTURE$VARIANT"
|
|
||||||
fi
|
|
||||||
|
|
||||||
DOCKER_CLI_EXPERIMENTAL=enabled docker manifest annotate "$IMAGE_NAME:${VERSION}" "$IMAGE_NAME:${VERSION}-$platform" --os "$OS" --arch "$ARCHITECTURE" --variant "$VARIANT"
|
|
||||||
done
|
|
||||||
|
|
||||||
# push manifest
|
|
||||||
DOCKER_CLI_EXPERIMENTAL=enabled docker manifest push "$IMAGE_NAME:${VERSION}"
|
|
||||||
Loading…
Reference in New Issue
Block a user