Open
Description
TLDR: Error while building the image: go: unsupported GOOS/GOARCH pair linux/Fatal error: invalid platform: string is malformed: "-field"
- Is this urgent: No
- DNS provider(s) you use: None for now
- Program version: -
- What are you using to run the container: I'm not running it yet, I'm building it with
docker build
- Extra information (optional): I'm trying to build the image so that I can run this container with a custom puid/pgid. Here is the command that I ran:
docker build -t qmcgaw/ddns-updater --build-arg UID=1024 --build-arg GID=100 https://github.com/qdm12/ddns-updater.git
Here is the error:
Step 38/53 : RUN GOARCH="$(xcputranslate translate -targetplatform ${TARGETPLATFORM} -field arch)" GOARM="$(xcputranslate translate -targetplatform ${TARGETPLATFORM} -field arm)" go build -trimpath -ldflags="-s -w -X 'main.version=$VERSION' -X 'main.date=$CREATED' -X 'main.commit=$COMMIT' " -o app cmd/ddns-updater/main.go
---> Running in 3e54a1c0f65f
go: unsupported GOOS/GOARCH pair linux/Fatal error: invalid platform: string is malformed: "-field"
The command '/bin/sh -c GOARCH="$(xcputranslate translate -targetplatform ${TARGETPLATFORM} -field arch)" GOARM="$(xcputranslate translate -targetplatform ${TARGETPLATFORM} -field arm)" go build -trimpath -ldflags="-s -w -X 'main.version=$VERSION' -X 'main.date=$CREATED' -X 'main.commit=$COMMIT' " -o app cmd/ddns-updater/main.go' returned a non-zero code: 2
Full logs
Sending build context to Docker daemon 856.6kB
Step 1/53 : ARG BUILDPLATFORM=linux/amd64
Step 2/53 : ARG ALPINE_VERSION=3.20
Step 3/53 : ARG GO_VERSION=1.23
Step 4/53 : ARG XCPUTRANSLATE_VERSION=v0.6.0
Step 5/53 : ARG GOLANGCI_LINT_VERSION=v1.61.0
Step 6/53 : ARG MOCKGEN_VERSION=v1.6.0
Step 7/53 : FROM --platform=${BUILDPLATFORM} qmcgaw/xcputranslate:${XCPUTRANSLATE_VERSION} AS xcputranslate
v0.6.0: Pulling from qmcgaw/xcputranslate
711ba20996e2: Pull complete
Digest: sha256:610582458e71facb54fd16cfb207e8b233afb6e15178742aa5332fd257926b74
Status: Downloaded newer image for qmcgaw/xcputranslate:v0.6.0
---> c0b5838f72d8
Step 8/53 : FROM --platform=${BUILDPLATFORM} qmcgaw/binpot:golangci-lint-${GOLANGCI_LINT_VERSION} AS golangci-lint
golangci-lint-v1.61.0: Pulling from qmcgaw/binpot
946f1d955426: Pull complete
Digest: sha256:319a32a6176c552e07a337ef4b3c99ebda5be075e66f6aa4eba6f5d2193a2c94
Status: Downloaded newer image for qmcgaw/binpot:golangci-lint-v1.61.0
---> 68ddaa64ef3e
Step 9/53 : FROM --platform=${BUILDPLATFORM} qmcgaw/binpot:mockgen-${MOCKGEN_VERSION} AS mockgen
mockgen-v1.6.0: Pulling from qmcgaw/binpot
d1da383ed6c2: Pull complete
Digest: sha256:cca569c9a01784eb550a9fb650f32060d03c00823e2e9ba78f85a1e3e8f0af36
Status: Downloaded newer image for qmcgaw/binpot:mockgen-v1.6.0
---> 2142014c898f
Step 10/53 : FROM --platform=$BUILDPLATFORM golang:${GO_VERSION}-alpine${ALPINE_VERSION} AS base
1.23-alpine3.20: Pulling from library/golang
0a9a5dfd008f: Already exists
36466aa92d05: Pull complete
e10405b45d13: Pull complete
096b7ceb2af7: Pull complete
4f4fb700ef54: Pull complete
Digest: sha256:96917b18cf0bf6dc54f726696eb526fe6e6a1ab45e43d4a292aae11f3d503ffe
Status: Downloaded newer image for golang:1.23-alpine3.20
---> a557ad65b41b
Step 11/53 : WORKDIR /tmp/gobuild
---> Running in 8bf41be77b7d
Removing intermediate container 8bf41be77b7d
---> 8b05e66a3297
Step 12/53 : ENV CGO_ENABLED=0
---> Running in f630273df1ac
Removing intermediate container f630273df1ac
---> c20ba63efbae
Step 13/53 : RUN apk --update add git g++ findutils
---> Running in f49d55db61f0
fetch https://dl-cdn.alpinelinux.org/alpine/v3.20/main/x86_64/APKINDEX.tar.gz
fetch https://dl-cdn.alpinelinux.org/alpine/v3.20/community/x86_64/APKINDEX.tar.gz
(1/27) Installing findutils (4.9.0-r5)
(2/27) Installing libgcc (13.2.1_git20240309-r1)
(3/27) Installing libstdc++ (13.2.1_git20240309-r1)
(4/27) Installing libstdc++-dev (13.2.1_git20240309-r1)
(5/27) Installing jansson (2.14-r4)
(6/27) Installing zstd-libs (1.5.6-r0)
(7/27) Installing binutils (2.42-r1)
(8/27) Installing libgomp (13.2.1_git20240309-r1)
(9/27) Installing libatomic (13.2.1_git20240309-r1)
(10/27) Installing gmp (6.3.0-r1)
(11/27) Installing isl26 (0.26-r1)
(12/27) Installing mpfr4 (4.2.1-r0)
(13/27) Installing mpc1 (1.3.1-r1)
(14/27) Installing gcc (13.2.1_git20240309-r1)
(15/27) Installing musl-dev (1.2.5-r1)
(16/27) Installing g++ (13.2.1_git20240309-r1)
(17/27) Installing brotli-libs (1.1.0-r2)
(18/27) Installing c-ares (1.33.1-r0)
(19/27) Installing libunistring (1.2-r0)
(20/27) Installing libidn2 (2.3.7-r0)
(21/27) Installing nghttp2-libs (1.62.1-r0)
(22/27) Installing libpsl (0.21.5-r1)
(23/27) Installing libcurl (8.12.1-r0)
(24/27) Installing libexpat (2.7.0-r0)
(25/27) Installing pcre2 (10.43-r0)
(26/27) Installing git (2.45.3-r0)
(27/27) Installing git-init-template (2.45.3-r0)
Executing busybox-1.36.1-r29.trigger
OK: 227 MiB in 42 packages
Removing intermediate container f49d55db61f0
---> 427753447bcf
Step 14/53 : COPY --from=xcputranslate /xcputranslate /usr/local/bin/xcputranslate
---> 9f68fb5a4c4e
Step 15/53 : COPY --from=golangci-lint /bin /go/bin/golangci-lint
---> 1b7927be9642
Step 16/53 : COPY --from=mockgen /bin /go/bin/mockgen
---> a4e8b102e86c
Step 17/53 : COPY go.mod go.sum ./
---> 4c6f9c9ba726
Step 18/53 : RUN go mod download
---> Running in 3fbecd2dd5a5
Removing intermediate container 3fbecd2dd5a5
---> 2cd1a79b43ab
Step 19/53 : COPY pkg/ ./pkg/
---> 9492419a2026
Step 20/53 : COPY cmd/ ./cmd/
---> 212b819f6aec
Step 21/53 : COPY internal/ ./internal/
---> a8ca4d7471e3
Step 22/53 : FROM --platform=$BUILDPLATFORM base AS test
---> a8ca4d7471e3
Step 23/53 : ENV CGO_ENABLED=1
---> Running in 9b2e9113d57c
Removing intermediate container 9b2e9113d57c
---> 472ed0669227
Step 24/53 : COPY readme/ ./readme/
---> aa47accca2d9
Step 25/53 : COPY README.md ./README.md
---> 4db38e6a4d87
Step 26/53 : ENTRYPOINT go test -race -coverpkg=./... -coverprofile=coverage.txt -covermode=atomic ./...
---> Running in d7a1007a0b00
Removing intermediate container d7a1007a0b00
---> 179c7120465f
Step 27/53 : FROM --platform=$BUILDPLATFORM base AS lint
---> a8ca4d7471e3
Step 28/53 : COPY .golangci.yml ./
---> 35c6f5983349
Step 29/53 : RUN golangci-lint run --timeout=10m
---> Running in 52d7d64c8ab2
Removing intermediate container 52d7d64c8ab2
---> fd5e33ad0ad6
Step 30/53 : FROM --platform=${BUILDPLATFORM} base AS mocks
---> a8ca4d7471e3
Step 31/53 : RUN git init && git config user.email ci@localhost && git config user.name ci && git config core.fileMode false && git add -A && git commit -m "snapshot" && grep -lr -E '^// Code generated by MockGen\. DO NOT EDIT\.$' . | xargs -r -d '\n' rm && go generate -run "mockgen" ./... && git diff --exit-code && rm -rf .git/
---> Running in ab684fa7e0bd
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint: git config --global init.defaultBranch <name>
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint: git branch -m <name>
Initialized empty Git repository in /tmp/gobuild/.git/
[master (root-commit) 59d56e1] snapshot
229 files changed, 21839 insertions(+)
create mode 100644 cmd/ddns-updater/main.go
create mode 100644 go.mod
create mode 100644 go.sum
create mode 100644 internal/backup/interfaces.go
create mode 100644 internal/backup/service.go
create mode 100644 internal/backup/zip.go
create mode 100644 internal/config/backup.go
create mode 100644 internal/config/client.go
create mode 100644 internal/config/health.go
create mode 100644 internal/config/helpers.go
create mode 100644 internal/config/logger.go
create mode 100644 internal/config/paths.go
create mode 100644 internal/config/paths_test.go
create mode 100644 internal/config/pubip.go
create mode 100644 internal/config/resolver.go
create mode 100644 internal/config/retrocompat.go
create mode 100644 internal/config/server.go
create mode 100644 internal/config/settings.go
create mode 100644 internal/config/settings_test.go
create mode 100644 internal/config/shoutrrr.go
create mode 100644 internal/config/update.go
create mode 100644 internal/constants/status.go
create mode 100644 internal/data/data.go
create mode 100644 internal/data/interfaces.go
create mode 100644 internal/data/memory.go
create mode 100644 internal/data/persistence.go
create mode 100644 internal/health/check.go
create mode 100644 internal/health/client.go
create mode 100644 internal/health/handler.go
create mode 100644 internal/health/httpcheck.go
create mode 100644 internal/health/interfaces.go
create mode 100644 internal/health/server.go
create mode 100644 internal/healthchecksio/healthchecksio.go
create mode 100644 internal/models/alias.go
create mode 100644 internal/models/build.go
create mode 100644 internal/models/history.go
create mode 100644 internal/models/history_test.go
create mode 100644 internal/models/html.go
create mode 100644 internal/models/ipmethod.go
create mode 100644 internal/noop/service.go
create mode 100644 internal/params/json.go
create mode 100644 internal/params/json_test.go
create mode 100644 internal/params/reader.go
create mode 100644 internal/params/retro.go
create mode 100644 internal/params/retro_test.go
create mode 100644 internal/persistence/json/database.go
create mode 100644 internal/persistence/json/models.go
create mode 100644 internal/persistence/json/queries.go
create mode 100644 internal/provider/constants/dyndns.go
create mode 100644 internal/provider/constants/providers.go
create mode 100644 internal/provider/constants/recordtypes.go
create mode 100644 internal/provider/errors/update.go
create mode 100644 internal/provider/errors/validation.go
create mode 100644 internal/provider/headers/headers.go
create mode 100644 internal/provider/provider.go
create mode 100644 internal/provider/providers/aliyun/auth.go
create mode 100644 internal/provider/providers/aliyun/common.go
create mode 100644 internal/provider/providers/aliyun/create.go
create mode 100644 internal/provider/providers/aliyun/getrecord.go
create mode 100644 internal/provider/providers/aliyun/provider.go
create mode 100644 internal/provider/providers/aliyun/update.go
create mode 100644 internal/provider/providers/allinkl/provider.go
create mode 100644 internal/provider/providers/changeip/provider.go
create mode 100644 internal/provider/providers/cloudflare/provider.go
create mode 100644 internal/provider/providers/custom/provider.go
create mode 100644 internal/provider/providers/dd24/provider.go
create mode 100644 internal/provider/providers/ddnss/provider.go
create mode 100644 internal/provider/providers/desec/provider.go
create mode 100644 internal/provider/providers/digitalocean/provider.go
create mode 100644 internal/provider/providers/dnsomatic/provider.go
create mode 100644 internal/provider/providers/dnsomatic/provider_test.go
create mode 100644 internal/provider/providers/dnspod/provider.go
create mode 100644 internal/provider/providers/domeneshop/provider.go
create mode 100644 internal/provider/providers/dondominio/provider.go
create mode 100644 internal/provider/providers/dreamhost/headers.go
create mode 100644 internal/provider/providers/dreamhost/provider.go
create mode 100644 internal/provider/providers/duckdns/provider.go
create mode 100644 internal/provider/providers/dyn/provider.go
create mode 100644 internal/provider/providers/dynu/provider.go
create mode 100644 internal/provider/providers/dynv6/provider.go
create mode 100644 internal/provider/providers/easydns/provider.go
create mode 100644 internal/provider/providers/example/provider.go
create mode 100644 internal/provider/providers/freedns/provider.go
create mode 100644 internal/provider/providers/gandi/provider.go
create mode 100644 internal/provider/providers/gcp/api.go
create mode 100644 internal/provider/providers/gcp/error.go
create mode 100644 internal/provider/providers/gcp/oauth2.go
create mode 100644 internal/provider/providers/gcp/provider.go
create mode 100644 internal/provider/providers/gcp/update.go
create mode 100644 internal/provider/providers/godaddy/provider.go
create mode 100644 internal/provider/providers/goip/provider.go
create mode 100644 internal/provider/providers/he/provider.go
create mode 100644 internal/provider/providers/hetzner/common.go
create mode 100644 internal/provider/providers/hetzner/create.go
create mode 100644 internal/provider/providers/hetzner/getrecord.go
create mode 100644 internal/provider/providers/hetzner/provider.go
create mode 100644 internal/provider/providers/hetzner/update.go
create mode 100644 internal/provider/providers/infomaniak/provider.go
create mode 100644 internal/provider/providers/inwx/provider.go
create mode 100644 internal/provider/providers/ionos/api.go
create mode 100644 internal/provider/providers/ionos/create.go
create mode 100644 internal/provider/providers/ionos/get.go
create mode 100644 internal/provider/providers/ionos/provider.go
create mode 100644 internal/provider/providers/ionos/update.go
create mode 100644 internal/provider/providers/linode/provider.go
create mode 100644 internal/provider/providers/loopia/provider.go
create mode 100644 internal/provider/providers/luadns/provider.go
create mode 100644 internal/provider/providers/myaddr/provider.go
create mode 100644 internal/provider/providers/namecheap/provider.go
create mode 100644 internal/provider/providers/namecom/createrecord.go
create mode 100644 internal/provider/providers/namecom/getrecord.go
create mode 100644 internal/provider/providers/namecom/headers.go
create mode 100644 internal/provider/providers/namecom/provider.go
create mode 100644 internal/provider/providers/namecom/response.go
create mode 100644 internal/provider/providers/namecom/updaterecord.go
create mode 100644 internal/provider/providers/namesilo/provider.go
create mode 100644 internal/provider/providers/netcup/info.go
create mode 100644 internal/provider/providers/netcup/json.go
create mode 100644 internal/provider/providers/netcup/login.go
create mode 100644 internal/provider/providers/netcup/models.go
create mode 100644 internal/provider/providers/netcup/provider.go
create mode 100644 internal/provider/providers/netcup/update.go
create mode 100644 internal/provider/providers/njalla/provider.go
create mode 100644 internal/provider/providers/noip/provider.go
create mode 100644 internal/provider/providers/nowdns/provider.go
create mode 100644 internal/provider/providers/opendns/provider.go
create mode 100644 internal/provider/providers/ovh/createrecord.go
create mode 100644 internal/provider/providers/ovh/endpoints.go
create mode 100644 internal/provider/providers/ovh/errors.go
create mode 100644 internal/provider/providers/ovh/getrecords.go
create mode 100644 internal/provider/providers/ovh/headers.go
create mode 100644 internal/provider/providers/ovh/provider.go
create mode 100644 internal/provider/providers/ovh/refresh.go
create mode 100644 internal/provider/providers/ovh/time.go
create mode 100644 internal/provider/providers/ovh/updaterecord.go
create mode 100644 internal/provider/providers/porkbun/api.go
create mode 100644 internal/provider/providers/porkbun/error.go
create mode 100644 internal/provider/providers/porkbun/provider.go
create mode 100644 internal/provider/providers/route53/api.go
create mode 100644 internal/provider/providers/route53/api_test.go
create mode 100644 internal/provider/providers/route53/provider.go
create mode 100644 internal/provider/providers/route53/signer.go
create mode 100644 internal/provider/providers/route53/signer_test.go
create mode 100644 internal/provider/providers/selfhostde/provider.go
create mode 100644 internal/provider/providers/servercow/provider.go
create mode 100644 internal/provider/providers/spdyn/provider.go
create mode 100644 internal/provider/providers/strato/provider.go
create mode 100644 internal/provider/providers/variomedia/provider.go
create mode 100644 internal/provider/providers/vultr/createrecord.go
create mode 100644 internal/provider/providers/vultr/getrecord.go
create mode 100644 internal/provider/providers/vultr/provider.go
create mode 100644 internal/provider/providers/vultr/updaterecord.go
create mode 100644 internal/provider/providers/zoneedit/provider.go
create mode 100644 internal/provider/utils/body.go
create mode 100644 internal/provider/utils/domain.go
create mode 100644 internal/provider/utils/domain_test.go
create mode 100644 internal/provider/utils/provider.go
create mode 100644 internal/provider/utils/singleline.go
create mode 100644 internal/records/html.go
create mode 100644 internal/records/records.go
create mode 100644 internal/resolver/resolver.go
create mode 100644 internal/resolver/settings.go
create mode 100644 internal/server/error.go
create mode 100644 internal/server/handler.go
create mode 100644 internal/server/index.go
create mode 100644 internal/server/interfaces.go
create mode 100644 internal/server/server.go
create mode 100644 internal/server/ui/index.html
create mode 100644 internal/server/ui/static/favicon.ico
create mode 100644 internal/server/ui/static/favicon.svg
create mode 100644 internal/server/ui/static/styles.css
create mode 100644 internal/server/update.go
create mode 100644 internal/shoutrrr/interfaces.go
create mode 100644 internal/shoutrrr/settings.go
create mode 100644 internal/shoutrrr/shoutrrr.go
create mode 100644 internal/shoutrrr/shoutrrr_test.go
create mode 100644 internal/system/umask_unix.go
create mode 100644 internal/system/umask_windows.go
create mode 100644 internal/update/getip.go
create mode 100644 internal/update/helpers.go
create mode 100644 internal/update/interfaces.go
create mode 100644 internal/update/ipv6.go
create mode 100644 internal/update/ipv6_test.go
create mode 100644 internal/update/logclient.go
create mode 100644 internal/update/logclient_test.go
create mode 100644 internal/update/mock_update/logclient.go
create mode 100644 internal/update/service.go
create mode 100644 internal/update/update.go
create mode 100644 pkg/ipextract/ipextract.go
create mode 100644 pkg/ipextract/ipextract_test.go
create mode 100644 pkg/publicip/dns/client.go
create mode 100644 pkg/publicip/dns/dns.go
create mode 100644 pkg/publicip/dns/dns_test.go
create mode 100644 pkg/publicip/dns/fetch.go
create mode 100644 pkg/publicip/dns/fetch_test.go
create mode 100644 pkg/publicip/dns/integration_test.go
create mode 100644 pkg/publicip/dns/ip.go
create mode 100644 pkg/publicip/dns/mock_dns/client.go
create mode 100644 pkg/publicip/dns/options.go
create mode 100644 pkg/publicip/dns/options_test.go
create mode 100644 pkg/publicip/dns/providers.go
create mode 100644 pkg/publicip/dns/providers_test.go
create mode 100644 pkg/publicip/http/fetch.go
create mode 100644 pkg/publicip/http/fetch_test.go
create mode 100644 pkg/publicip/http/http.go
create mode 100644 pkg/publicip/http/http_test.go
create mode 100644 pkg/publicip/http/integration_test.go
create mode 100644 pkg/publicip/http/ip.go
create mode 100644 pkg/publicip/http/ip_test.go
create mode 100644 pkg/publicip/http/options.go
create mode 100644 pkg/publicip/http/options_test.go
create mode 100644 pkg/publicip/http/providers.go
create mode 100644 pkg/publicip/http/providers_test.go
create mode 100644 pkg/publicip/http/roudtrip_test.go
create mode 100644 pkg/publicip/info/countries.go
create mode 100644 pkg/publicip/info/errors.go
create mode 100644 pkg/publicip/info/http.go
create mode 100644 pkg/publicip/info/info.go
create mode 100644 pkg/publicip/info/ip2location.go
create mode 100644 pkg/publicip/info/ipinfo.go
create mode 100644 pkg/publicip/info/options.go
create mode 100644 pkg/publicip/info/provider.go
create mode 100644 pkg/publicip/info/rand.go
create mode 100644 pkg/publicip/info/result.go
create mode 100644 pkg/publicip/info/settings.go
create mode 100644 pkg/publicip/ipversion/ipversion.go
create mode 100644 pkg/publicip/publicip.go
create mode 100644 pkg/publicip/settings.go
create mode 100644 pkg/publicip/subfetcher.go
Removing intermediate container ab684fa7e0bd
---> a42d91dcc5c7
Step 32/53 : FROM --platform=$BUILDPLATFORM base AS build
---> a8ca4d7471e3
Step 33/53 : RUN mkdir -p /tmp/data
---> Running in a96125f42e40
Removing intermediate container a96125f42e40
---> 2fc9f2a557e7
Step 34/53 : ARG VERSION=unknown
---> Running in 3a515bf79d02
Removing intermediate container 3a515bf79d02
---> b4dcfaad1d60
Step 35/53 : ARG CREATED="an unknown date"
---> Running in 3d2433ff004a
Removing intermediate container 3d2433ff004a
---> 56338b9d119d
Step 36/53 : ARG COMMIT=unknown
---> Running in cc1e8d1b8eb2
Removing intermediate container cc1e8d1b8eb2
---> 7fefa345c964
Step 37/53 : ARG TARGETPLATFORM
---> Running in a704bfc85aa1
Removing intermediate container a704bfc85aa1
---> 8d0b778bab08
Step 38/53 : RUN GOARCH="$(xcputranslate translate -targetplatform ${TARGETPLATFORM} -field arch)" GOARM="$(xcputranslate translate -targetplatform ${TARGETPLATFORM} -field arm)" go build -trimpath -ldflags="-s -w -X 'main.version=$VERSION' -X 'main.date=$CREATED' -X 'main.commit=$COMMIT' " -o app cmd/ddns-updater/main.go
---> Running in 3e54a1c0f65f
go: unsupported GOOS/GOARCH pair linux/Fatal error: invalid platform: string is malformed: "-field"
The command '/bin/sh -c GOARCH="$(xcputranslate translate -targetplatform ${TARGETPLATFORM} -field arch)" GOARM="$(xcputranslate translate -targetplatform ${TARGETPLATFORM} -field arm)" go build -trimpath -ldflags="-s -w -X 'main.version=$VERSION' -X 'main.date=$CREATED' -X 'main.commit=$COMMIT' " -o app cmd/ddns-updater/main.go' returned a non-zero code: 2
Host OS: Synology DS920+: DSM 7.1.1
Any help on this would be appreciated, thank you !
Metadata
Metadata
Assignees
Labels
No labels