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.
-
kubernetes
Production-Grade Container Scheduling and Management -
Moby
Moby Project - a collaborative project for the container ecosystem to assemble container-based systems -
Gitea
Git with a cup of tea! Painless self-hosted all-in-one software development service, includes Git hosting, code review, team collaboration, package registry and CI/CD -
Packer
Packer is a tool for creating identical machine images for multiple platforms from a single source configuration. -
Flynn
[UNMAINTAINED] A next generation open source platform as a service (PaaS) -
webhook
webhook is a lightweight incoming webhook server to run shell commands -
Ddosify
Comprehensive Performance Testing Platform. Available on CLI, Self-Hosted, and Cloud - https://ddosify.com 🚀 -
Boom
HTTP(S) load generator, ApacheBench (ab) replacement, written in Go -
bombardier
Fast cross-platform HTTP benchmarking tool written in Go -
Mizu
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] -
dasel
Select, put and delete data from JSON, TOML, YAML, XML and CSV files with a single tool. Supports conversion between formats and can be used as a Go package. -
rtop
rtop is an interactive, remote system monitoring tool based on SSH -
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. -
goxc
a build tool for Go, with a focus on cross-compiling, packaging and deployment -
Fleet device management
Open-source platform for IT and security teams with thousands of computers. (Linux, macOS, Windows, ChromeOS, AWS, Google Cloud, Azure, data center, containers, IoT) -
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. ✏️📋 -
kwatch
:eyes: monitor & detect crashes in your Kubernetes(K8s) cluster instantly -
kool
From local development to the cloud: development workflow made easy. -
cassowary
:rocket: Modern cross-platform HTTP load-testing tool written in Go -
govvv
"go build" wrapper to add version info to Golang applications -
jcli
Jenkins CLI allows you to manage your Jenkins in an easy way. Jenkins 命令行客户端 -
Pewpew
Flexible HTTP command line stress tester for websites and web services -
easyssh-proxy
easyssh-proxy provides a simple implementation of some SSH protocol features in Go -
gonative
Build Go Toolchains /w native libs for cross-compilation -
metric
Minimal metrics for Go (counter/gauge/histogram). No dependencies. Compatible with expvar. Web UI included.
Access the most powerful time series database as a service
Do you think we are missing an alternative of docker-go-mingw or a related project?
Popular Comparisons
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.