A simple Go server/microservice example for Docker's Go Language Guide.
Notable features:
- Includes a multi-stage
Dockerfile
, which actually is a good example of how to build Go binaries for production releases. - Has functional tests for application's business requirements with proper isolation between tests using
ory/dockertest
. - Has a CI pipeline using GitHub Actions to run functional tests in independent containers.
- Has a CD pipeline using GitHub Actions to publish to Docker Hub.
Planned:
- Building Go modules and Docker images with
goreleaser
There is a more advanced example in olliefr/docker-gs-ping-roach using CockroachDB.
This was written for an introduction section of the Docker tutorial and as such it favours brevity and pedagogical clarity over robustness.
Thus, feedback is welcome, but please no nits or pedantry. Ain't nobody got time for that 🙃