Content-Length: 303361 | pFad | http://github.com/gythialy/golang-cross

4C GitHub - gythialy/golang-cross: golang cross compiler with CGO
Skip to content

gythialy/golang-cross

Repository files navigation

golang-cross Actions Status

Docker container to do cross compilation (Linux, windows, macOS, ARM, ARM64) of go packages including support for cgo.

Docker images

Pre-built Images

  • golang-cross
    docker pull ghcr.io/gythialy/golang-cross:latest
    
  • golang-cross-builder
    docker pull ghcr.io/gythialy/golang-cross-builder:v1.22.0-0-bullseye
    docker pull ghcr.io/gythialy/golang-cross-builder:v1.17.1
    

Build your own

  • Build base image (optional)

    docker build -f Dockerfile_builder -t ghcr.io/gythialy/golang-cross-builder:v1.17.1 .
    # if running docker on M1 (arm64) macOS:
    docker build --platform linux/amd64 -f Dockerfile.builder -t ghcr.io/gythialy/golang-cross-builder:v1.18 .
    

    Note: Pack the SDK first or use GitHub Action

  • Build golang-cross image

    docker build --build-arg GO_VERSION=1.22.0 \
      --build-arg OS_CODENAME=bullseye \
      --build-arg GOLANG_DIST_SHA=542e936b19542e62679766194364f45141fde55169db2d8d01046555ca9eb4b8 \
      --build-arg GORELEASER_VERSION=1.24.0 \
      --build-arg GORELEASER_SHA=4b7d2f1e59ead8047fcef795d66236ff6f8cfe7302c1ff8fb31bd360a3c6f32e \
      -f Dockerfile \
      -t ghcr.io/gythialy/golang-cross:latest .
    

    Override default arguments with --build-arg

Usage

  • Prepare GoReleaser configuration

  • Set up GPG signing (optional), if enable the signing feature

    export PRIVATE_KEY=$(cat ~/private_key.gpg | base64)
  • Build the binaries:

    export GO_BUILDER_VERSION=v1.17.1;
    docker run --rm --privileged \
      -e PRIVATE_KEY=$(PRIVATE_KEY) \
      -v $(CURDIR):/golang-cross-example \
      -v /var/run/docker.sock:/var/run/docker.sock \
      -v $(GOPATH)/src:/go/src \
      -w /golang-cross-example \
      ghcr.io/gythialy/golang-cross:$(GO_BUILDER_VERSION) --snapshot --rm-dist

Examples

Alternative projects









ApplySandwichStrip

pFad - (p)hone/(F)rame/(a)nonymizer/(d)eclutterfier!      Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

Fetched URL: http://github.com/gythialy/golang-cross

Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy