docker-go-mingw alternatives and similar packages
Based on the "DevOps Tools" category.
Alternatively, view docker-go-mingw alternatives based on common mentions on social networks and blogs.
-
Gitea
Git with a cup of tea! Painless self-hosted all-in-one software development service, including Git hosting, code review, team collaboration, package registry and CI/CD -
Moby
The Moby Project - a collaborative project for the container ecosystem to assemble container-based systems -
Packer
Packer is a tool for creating identical machine images for multiple platforms from a single source configuration. -
kubeshark
eBPF-powered network observability for Kubernetes. Indexes L4/L7 traffic with full K8s context, decrypts TLS without keys. Queryable by AI agents via MCP and humans via dashboard. -
dasel
Unified querying, transformation, and modification of JSON, TOML, YAML, XML, INI, HCL, KDL and CSV. -
Mizu
DISCONTINUED. The API traffic viewer for Kubernetes providing deep visibility into all API traffic and payloads going in, out and across containers and pods inside a Kubernetes cluster. Think TCPDump and Wireshark re-invented for Kubernetes [Moved to: https://github.com/kubeshark/kubeshark] -
Pomerium
Pomerium is an identity and context-aware reverse proxy for zero-trust access to web applications and services. -
StatusOK
Monitor your Website and APIs from your Computer. Get Notified through Slack, E-mail when your server is down or response time is more than expected. -
s3gof3r
Fast, concurrent, streaming access to Amazon S3, including gof3r, a CLI. http://godoc.org/github.com/rlmcpherson/s3gof3r -
uTask
µTask is an automation engine that models and executes business processes declared in yaml. ✏️📋
SaaSHub - Software Alternatives and Reviews
Do you think we are missing an alternative of docker-go-mingw or a related project?
README
go-mingw
Docker image for building Go binaries for Windows with MinGW-w64 toolchain based on official Go Docker image.
The repository provides simple cross-compilation environment for windows 32 and 64bit builds.
Usage
You can pull Docker image with desired Go version from Docker Hub:
docker pull x1unix/go-mingw:latest # or "1.17" for specific Go version
Recommended: Please take a look at [full project build example](example/sqlite-app) before starting to work.
Building Go applications inside container
Mount directory with app source and build it:
docker run --rm -it -v /YourPackageSrc:/go/work \
-w /go/work \
x1unix/go-mingw go build .
You will get compiled Windows binary.
For 32-bit toolchain
To build a 32-bit executable, set GOARCH=386 variable:
docker run --rm -it -e GOARCH=386 -v /YourPackageSrc:/go/work \
-w /go/work \
x1unix/go-mingw go build .
Recommended: See full project build example [here](example/sqlite-app).
Go linker flags override
You can override Go linker flags and other flags by specifying environment variable for a container using -e option.
Example:
docker exec -it
-e LDFLAGS="-linkmode external -extldflags '-static -s -w'"
...
Produced files ownership
By default, the container starts as root user. It means, that all produced files
will be owned by root:root user.
To set files to be owned by your current user by default, you need to start the container with your current uid/gid.
Use -u flag to start container with different user/group id.
# Start container as other uid/gid
docker exec --rm -it -u "$UID:$GID" ...
Attention: we recommend to mount your host GOPATH and GOCACHE instead of separated volumes approach when using UID/GID other than root.
Go Build Cache
In order to speed up build times and keep Go build cache, you can mount your Go build cache directory or create a separate Docker volume for it.
Local GOPATH
docker run --rm -it \
-u $UID \
-v /YourPackageSrc:/go/work \
-v $(go env GOCACHE):/go/cache \
-e GOCACHE=/go/cache \
-w /go/work \
x1unix/go-mingw go build .
Volume:
# Create Docker volume
docker volume create go-cache
# Run container with attached volume
docker run --rm -it \
-v /YourPackageSrc:/go/work \
-v go-cache:/go/cache \
-e GOCACHE=/go/cache \
-w /go/work \
x1unix/go-mingw go build .
See Docker volumes docs for more info.
Go modules cache
In addition to Go build cache, you may also want to mount Go modules cache to avoid modules re-download on each build.
To do this, mount your GOPATH or Go modules directory ($GOPATH/pkg).
Building custom Docker image
You can build image locally with specified Go version:
make image GO_VERSION=1.17
Replace 1.17 with desired Go version.