## Description
Uses alpine in the base docker images, to gain access
to a shell within corso containers.
## Type of change
- [x] 🌻 Feature
## Issue(s)
* #573
## Test Plan
- [x] 💪 Manual
- [ ] ⚡ Unit test
- [ ] 💚 E2E
Introduces the production of docker containers as a CI step.
Currently only provides a rolling-release version that builds
on every push to main. Images are deployed to ghcr.io.
The PR includes two variations on building the images. We'll
likely only want to stick with one or the other.
Adds a Dockerfile under the docker to package the corso binary.
This currently requires the user to build the corso binary (for linux/amd64) in the build image
prior to building the docker image. Follow up PRs will introduce a Makefile.
Also moves the build image to the build folder and adds a couple of README.md files with
instructions.
Fixes#218
Mac uses low group IDs for the default user, which would cause groupadd
to fail as the group already existed. Only make a new group if it
doesn't already exist.
This does raise other questions though as now we are technically having
the container run with a "services" group.
* Expects go get/go mod to be used to handle application dependencies
* Expects users to use a volume mount to make code visible to the
container
* Add a user (with the option of having the same UID/GID as current
user) to avoid weird file owners when building things in the container
as golang usually runs as root