From 463216acda6b6ddc675ead2305cd83a870e3f614 Mon Sep 17 00:00:00 2001 From: Rolf Neugebauer Date: Mon, 13 Apr 2020 22:50:27 +0100 Subject: [PATCH] pkg: Add gcc for all packages build for arm64 This is a workaround for https://github.com/linuxkit/linuxkit/issues/3496 Signed-off-by: Rolf Neugebauer --- pkg/cadvisor/Dockerfile | 2 ++ pkg/extend/Dockerfile | 2 ++ pkg/format/Dockerfile | 2 ++ pkg/init/Dockerfile | 2 ++ pkg/kmsg/Dockerfile | 2 ++ pkg/logwrite/Dockerfile | 2 ++ pkg/memlogd/Dockerfile | 2 ++ pkg/metadata/Dockerfile | 2 ++ pkg/mount/Dockerfile | 2 ++ pkg/rngd/Dockerfile | 2 ++ pkg/sysctl/Dockerfile | 2 ++ pkg/sysfs/Dockerfile | 2 ++ pkg/trim-after-delete/Dockerfile | 2 ++ 13 files changed, 26 insertions(+) diff --git a/pkg/cadvisor/Dockerfile b/pkg/cadvisor/Dockerfile index e22caab86..805e0b505 100644 --- a/pkg/cadvisor/Dockerfile +++ b/pkg/cadvisor/Dockerfile @@ -1,6 +1,8 @@ FROM linuxkit/alpine:bc528cf9d4065d2e09aa44ff76909b94cfe8d867 as build RUN apk add --no-cache bash go git musl-dev linux-headers make +# Hack to work around an issue with go on arm64 requiring gcc +RUN [ $(uname -m) = aarch64 ] && apk add --no-cache gcc || true ENV GOPATH=/go PATH=$PATH:/go/bin ENV GITREPO=github.com/google/cadvisor diff --git a/pkg/extend/Dockerfile b/pkg/extend/Dockerfile index 4f5e7c6b6..6c33cdfe6 100644 --- a/pkg/extend/Dockerfile +++ b/pkg/extend/Dockerfile @@ -19,6 +19,8 @@ FROM linuxkit/alpine:bc528cf9d4065d2e09aa44ff76909b94cfe8d867 AS build RUN apk add --no-cache go musl-dev ENV GOPATH=/go PATH=$PATH:/go/bin +# Hack to work around an issue with go on arm64 requiring gcc +RUN [ $(uname -m) = aarch64 ] && apk add --no-cache gcc || true COPY vendor /go/src/extend/vendor COPY extend.go /go/src/extend/ diff --git a/pkg/format/Dockerfile b/pkg/format/Dockerfile index 76bd4290c..002f8d2d5 100644 --- a/pkg/format/Dockerfile +++ b/pkg/format/Dockerfile @@ -19,6 +19,8 @@ FROM linuxkit/alpine:bc528cf9d4065d2e09aa44ff76909b94cfe8d867 AS build RUN apk add --no-cache go musl-dev ENV GOPATH=/go PATH=$PATH:/go/bin +# Hack to work around an issue with go on arm64 requiring gcc +RUN [ $(uname -m) = aarch64 ] && apk add --no-cache gcc || true COPY format.go /go/src/format/ RUN go-compile.sh /go/src/format diff --git a/pkg/init/Dockerfile b/pkg/init/Dockerfile index da935326b..4d8bb583c 100644 --- a/pkg/init/Dockerfile +++ b/pkg/init/Dockerfile @@ -6,6 +6,8 @@ RUN LDFLAGS=-static CFLAGS=-Werror make usermode-helper RUN apk add --no-cache go musl-dev ENV GOPATH=/go PATH=$PATH:/go/bin +# Hack to work around an issue with go on arm64 requiring gcc +RUN [ $(uname -m) = aarch64 ] && apk add --no-cache gcc || true COPY cmd /go/src/cmd RUN go-compile.sh /go/src/cmd/init diff --git a/pkg/kmsg/Dockerfile b/pkg/kmsg/Dockerfile index 46d08aa50..cf3363c41 100644 --- a/pkg/kmsg/Dockerfile +++ b/pkg/kmsg/Dockerfile @@ -2,6 +2,8 @@ FROM linuxkit/alpine:bc528cf9d4065d2e09aa44ff76909b94cfe8d867 AS mirror RUN apk add --no-cache go musl-dev linux-headers ENV GOPATH=/go PATH=$PATH:/go/bin +# Hack to work around an issue with go on arm64 requiring gcc +RUN [ $(uname -m) = aarch64 ] && apk add --no-cache gcc || true COPY . /go/src/kmsg/ RUN go-compile.sh /go/src/kmsg diff --git a/pkg/logwrite/Dockerfile b/pkg/logwrite/Dockerfile index d2093ad3b..60c0444f4 100644 --- a/pkg/logwrite/Dockerfile +++ b/pkg/logwrite/Dockerfile @@ -2,6 +2,8 @@ FROM linuxkit/alpine:bc528cf9d4065d2e09aa44ff76909b94cfe8d867 AS build RUN apk add --no-cache go musl-dev ENV GOPATH=/go PATH=$PATH:/go/bin +# Hack to work around an issue with go on arm64 requiring gcc +RUN [ $(uname -m) = aarch64 ] && apk add --no-cache gcc || true COPY logwrite.go /go/src/logwrite/ RUN go-compile.sh /go/src/logwrite diff --git a/pkg/memlogd/Dockerfile b/pkg/memlogd/Dockerfile index fe5429cf0..5d89937c6 100644 --- a/pkg/memlogd/Dockerfile +++ b/pkg/memlogd/Dockerfile @@ -2,6 +2,8 @@ FROM linuxkit/alpine:bc528cf9d4065d2e09aa44ff76909b94cfe8d867 AS build RUN apk add --no-cache go musl-dev ENV GOPATH=/go PATH=$PATH:/go/bin +# Hack to work around an issue with go on arm64 requiring gcc +RUN [ $(uname -m) = aarch64 ] && apk add --no-cache gcc || true COPY cmd/ /go/src/ RUN go-compile.sh /go/src/memlogd diff --git a/pkg/metadata/Dockerfile b/pkg/metadata/Dockerfile index ff219ee1c..88c2f0f6f 100644 --- a/pkg/metadata/Dockerfile +++ b/pkg/metadata/Dockerfile @@ -2,6 +2,8 @@ FROM linuxkit/alpine:bc528cf9d4065d2e09aa44ff76909b94cfe8d867 AS mirror RUN apk add --no-cache go musl-dev linux-headers ENV GOPATH=/go PATH=$PATH:/go/bin +# Hack to work around an issue with go on arm64 requiring gcc +RUN [ $(uname -m) = aarch64 ] && apk add --no-cache gcc || true COPY . /go/src/metadata/ RUN go-compile.sh /go/src/metadata diff --git a/pkg/mount/Dockerfile b/pkg/mount/Dockerfile index 53b047675..1c0c8dec6 100644 --- a/pkg/mount/Dockerfile +++ b/pkg/mount/Dockerfile @@ -13,6 +13,8 @@ FROM linuxkit/alpine:bc528cf9d4065d2e09aa44ff76909b94cfe8d867 AS build RUN apk add --no-cache go musl-dev ENV GOPATH=/go PATH=$PATH:/go/bin +# Hack to work around an issue with go on arm64 requiring gcc +RUN [ $(uname -m) = aarch64 ] && apk add --no-cache gcc || true COPY *.go /go/src/mountie/ RUN go-compile.sh /go/src/mountie diff --git a/pkg/rngd/Dockerfile b/pkg/rngd/Dockerfile index f8e585a81..16d9b6487 100644 --- a/pkg/rngd/Dockerfile +++ b/pkg/rngd/Dockerfile @@ -2,6 +2,8 @@ FROM linuxkit/alpine:bc528cf9d4065d2e09aa44ff76909b94cfe8d867 AS mirror RUN apk add --no-cache go gcc musl-dev linux-headers ENV GOPATH=/go PATH=$PATH:/go/bin +# Hack to work around an issue with go on arm64 requiring gcc +RUN [ $(uname -m) = aarch64 ] && apk add --no-cache gcc || true # see https://github.com/golang/go/issues/23672 ENV CGO_CFLAGS_ALLOW=(-mrdrnd|-mrdseed) diff --git a/pkg/sysctl/Dockerfile b/pkg/sysctl/Dockerfile index 083a9f604..fbab2fd21 100644 --- a/pkg/sysctl/Dockerfile +++ b/pkg/sysctl/Dockerfile @@ -2,6 +2,8 @@ FROM linuxkit/alpine:bc528cf9d4065d2e09aa44ff76909b94cfe8d867 AS mirror RUN apk add --no-cache go musl-dev ENV GOPATH=/go PATH=$PATH:/go/bin +# Hack to work around an issue with go on arm64 requiring gcc +RUN [ $(uname -m) = aarch64 ] && apk add --no-cache gcc || true COPY main.go /go/src/sysctl/ RUN go-compile.sh /go/src/sysctl diff --git a/pkg/sysfs/Dockerfile b/pkg/sysfs/Dockerfile index 6fe0c0472..302488030 100644 --- a/pkg/sysfs/Dockerfile +++ b/pkg/sysfs/Dockerfile @@ -2,6 +2,8 @@ FROM linuxkit/alpine:bc528cf9d4065d2e09aa44ff76909b94cfe8d867 AS mirror RUN apk add --no-cache go musl-dev ENV GOPATH=/go PATH=$PATH:/go/bin +# Hack to work around an issue with go on arm64 requiring gcc +RUN [ $(uname -m) = aarch64 ] && apk add --no-cache gcc || true COPY main.go /go/src/sysfs/ RUN go-compile.sh /go/src/sysfs diff --git a/pkg/trim-after-delete/Dockerfile b/pkg/trim-after-delete/Dockerfile index 7b55cc026..2f00e25b9 100644 --- a/pkg/trim-after-delete/Dockerfile +++ b/pkg/trim-after-delete/Dockerfile @@ -12,6 +12,8 @@ RUN rm -rf /out/etc/apk /out/lib/apk /out/var/cache # We also need the Go binary which calls it: RUN apk add --no-cache go musl-dev ENV GOPATH=/go PATH=$PATH:/go/bin +# Hack to work around an issue with go on arm64 requiring gcc +RUN [ $(uname -m) = aarch64 ] && apk add --no-cache gcc || true COPY . /go/src/trim-after-delete RUN go-compile.sh /go/src/trim-after-delete