Skip to content

Commit aa9e756

Browse files
committed
Add Docker container
Related to issue #100.
1 parent 7e580e1 commit aa9e756

File tree

5 files changed

+80
-2
lines changed

5 files changed

+80
-2
lines changed

.github/workflows/ci.yaml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,14 @@ on:
55
pull_request:
66
push:
77

8-
permissions:
9-
contents: read
8+
permissions: {}
109

1110
jobs:
1211
test:
1312
uses: hansmi/ghactions-go-test-workflow/.github/workflows/[email protected]
1413
with:
1514
runs-on: ubuntu-latest
15+
permissions:
16+
contents: read
1617

1718
# vim: set sw=2 sts=2 et :

.github/workflows/release.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ permissions: {}
1010
jobs:
1111
release:
1212
uses: hansmi/ghactions-goreleaser-workflow/.github/workflows/[email protected]
13+
with:
14+
qemu-enabled: true
1315
permissions:
1416
contents: write
1517
packages: write

.goreleaser.yml

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,50 @@ archives:
5555
- LICENSE
5656
- README.md
5757

58+
dockers:
59+
- use: buildx
60+
goos: linux
61+
goarch: amd64
62+
dockerfile: contrib/Dockerfile.goreleaser
63+
extra_files: &docker_extra_files
64+
- LICENSE
65+
- README.md
66+
image_templates:
67+
- ghcr.io/hansmi/prometheus-lvm-exporter:{{.Tag}}-amd64
68+
build_flag_templates:
69+
- --pull
70+
- --platform=linux/amd64
71+
- --label=org.opencontainers.image.created={{.Date}}
72+
- --label=org.opencontainers.image.name={{.ProjectName}}
73+
- --label=org.opencontainers.image.revision={{.FullCommit}}
74+
- --label=org.opencontainers.image.version={{.Version}}
75+
- --label=org.opencontainers.image.source={{.GitURL}}
76+
- use: buildx
77+
goos: linux
78+
goarch: arm64
79+
dockerfile: contrib/Dockerfile.goreleaser
80+
extra_files: *docker_extra_files
81+
image_templates:
82+
- ghcr.io/hansmi/prometheus-lvm-exporter:{{.Tag}}-arm64
83+
build_flag_templates:
84+
- --pull
85+
- --platform=linux/arm64
86+
- --label=org.opencontainers.image.created={{.Date}}
87+
- --label=org.opencontainers.image.name={{.ProjectName}}
88+
- --label=org.opencontainers.image.revision={{.FullCommit}}
89+
- --label=org.opencontainers.image.version={{.Version}}
90+
- --label=org.opencontainers.image.source={{.GitURL}}
91+
92+
docker_manifests:
93+
- name_template: ghcr.io/hansmi/prometheus-lvm-exporter:{{.Tag}}
94+
image_templates: &docker_manifest_image_templates
95+
- ghcr.io/hansmi/prometheus-lvm-exporter:{{.Tag}}-amd64
96+
- ghcr.io/hansmi/prometheus-lvm-exporter:{{.Tag}}-arm64
97+
- name_template: ghcr.io/hansmi/prometheus-lvm-exporter:v{{.Major}}
98+
image_templates: *docker_manifest_image_templates
99+
- name_template: ghcr.io/hansmi/prometheus-lvm-exporter:latest
100+
image_templates: *docker_manifest_image_templates
101+
58102
changelog:
59103
groups:
60104
- title: Dependencies

contrib/Dockerfile.goreleaser

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
FROM docker.io/library/alpine:latest
2+
3+
RUN apk add --no-cache lvm2
4+
5+
LABEL org.opencontainers.image.licenses=BSD-3-Clause
6+
LABEL org.opencontainers.image.description="Prometheus exporter for LVM metrics"
7+
8+
WORKDIR /
9+
10+
COPY LICENSE README.md /
11+
COPY prometheus-lvm-exporter /
12+
13+
ENTRYPOINT ["/prometheus-lvm-exporter", "--command=/sbin/lvm", "--no-legacy-info-labels"]
14+
15+
# vim: set ft=dockerfile :

contrib/build-all

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
#!/bin/bash
2+
3+
set -e -u -o pipefail
4+
5+
package=github.com/hansmi/prometheus-lvm-exporter
6+
docker_gid=$(getent group docker | cut -d: -f3)
7+
8+
docker run --rm \
9+
--user "$(id -u):$(id -g)" --group-add="$docker_gid" \
10+
--env HOME=/tmp \
11+
-v "${PWD}:/go/src/${package}" \
12+
-v /var/run/docker.sock:/var/run/docker.sock \
13+
-w "/go/src/${package}" \
14+
goreleaser/goreleaser:latest release --snapshot --clean --skip=publish
15+
16+
# vim: set sw=2 sts=2 et :

0 commit comments

Comments
 (0)