mirror of
https://github.com/goreleaser/goreleaser.git
synced 2025-01-10 03:47:03 +02:00
58 lines
1.4 KiB
Markdown
58 lines
1.4 KiB
Markdown
|
---
|
||
|
title: Docker Support
|
||
|
---
|
||
|
|
||
|
Since [v0.31.0](https://github.com/goreleaser/goreleaser/releases/tag/v0.31.0),
|
||
|
[GoReleaser](https://github.com/goreleaser/goreleaser) support building and
|
||
|
pushing Docker images.
|
||
|
|
||
|
## How it works
|
||
|
|
||
|
You can declare multiple Docker images. They will be matched against your
|
||
|
the binaries generated by your `builds` section.
|
||
|
|
||
|
If you have only one `build` setup, the config is as easy as adding the
|
||
|
name of your image to your `.goreleaser.yml`:
|
||
|
|
||
|
```yaml
|
||
|
dockers:
|
||
|
- image: user/repo
|
||
|
```
|
||
|
|
||
|
You also need to create a `Dockerfile` in your repo root folder:
|
||
|
|
||
|
```dockerfile
|
||
|
FROM scratch
|
||
|
COPY mybin /
|
||
|
ENTRYPOINT ["/mybin"]
|
||
|
```
|
||
|
|
||
|
This config will build and push a docker image named `user/repo:tagname`.
|
||
|
|
||
|
## Customization
|
||
|
|
||
|
Of course, you can customize a lot of things out of this:
|
||
|
|
||
|
```yaml
|
||
|
# .goreleaser.yml
|
||
|
dockers:
|
||
|
# You can have multiple Docker images
|
||
|
-
|
||
|
# GOOS of the built binary that should be used
|
||
|
goos: linux
|
||
|
# GOARCH of the built binary that should be used
|
||
|
goarch: amd64
|
||
|
# GOARM of the built binary that should be used
|
||
|
goarm: ''
|
||
|
# Name of the built binary that should be used
|
||
|
binary: mybinary
|
||
|
# Docker image name
|
||
|
image: myuser/myimage
|
||
|
# Path to the Dockerfile (from the project root)
|
||
|
dockerfile: Dockerfile
|
||
|
```
|
||
|
|
||
|
These settings should allow you to generate multiple docker images, using
|
||
|
multiple `FROM` statements, for example, as well generate one image for
|
||
|
each binary in your project.
|