Skip to content

Commit 1eef3b6

Browse files
authored
Merge pull request #457 from mackerelio/build-plugins-direct
build a plugins from direct vcs.
2 parents 24ae357 + 7ea605b commit 1eef3b6

File tree

4 files changed

+866
-18
lines changed

4 files changed

+866
-18
lines changed

Dockerfile

Lines changed: 19 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ RUN make build
1010

1111
FROM debian:bookworm-slim AS container-agent
1212

13-
ENV DEBIAN_FRONTEND noninteractive
14-
ENV GODEBUG http2client=0
13+
ENV DEBIAN_FRONTEND=noninteractive
14+
ENV GODEBUG=http2client=0
1515

1616
RUN apt-get update -yq && \
1717
apt-get install -yq --no-install-recommends ca-certificates sudo && \
@@ -21,24 +21,26 @@ COPY --from=builder /go/src/app/build/mackerel-container-agent /usr/local/bin/
2121

2222
ENTRYPOINT ["/usr/local/bin/mackerel-container-agent"]
2323

24-
FROM container-agent AS container-agent-with-plugins
24+
FROM golang:1.24-bookworm AS plugins-builder
2525

26-
ENV BUNDLE_AGENT_PLUGINS apache2|elasticsearch|fluentd|gostats|haproxy|jmx-jolokia|memcached|mysql|nginx|php-apc|php-fpm|php-opcache|plack|postgres|redis|sidekiq|snmp|squid|uwsgi-vassal
27-
ENV BUNDLE_CHECK_PLUGINS cert-file|elasticsearch|file-age|file-size|http|jmx-jolokia|log|memcached|mysql|postgresql|redis|ssh|ssl-cert|tcp
28-
ENV MKR_INSTALL_PLUGINS json
26+
COPY plugins/go.sum plugins/go.mod ./
27+
RUN go mod download
2928

30-
RUN apt-get update -yq && \
31-
apt-get install -yq --no-install-recommends curl gnupg2
32-
RUN curl -sS https://mackerel.io/file/cert/GPG-KEY-mackerel-v2 | gpg --dearmor -o /etc/apt/keyrings/mackerel.gpg
33-
RUN echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/mackerel.gpg] http://apt.mackerel.io/v2/ mackerel contrib" > /etc/apt/sources.list.d/mackerel.list
29+
RUN go install \
30+
github.com/mackerelio/go-check-plugins \
31+
github.com/mackerelio/mackerel-agent-plugins \
32+
github.com/mackerelio/mackerel-plugin-json \
33+
github.com/mackerelio/mkr
3434

35-
RUN apt-get update -yq && \
36-
apt-get install -yq --no-install-recommends mackerel-agent-plugins mackerel-check-plugins mkr && \
37-
rm -rf /var/lib/apt/lists
35+
FROM container-agent AS container-agent-with-plugins
3836

39-
RUN find /usr/bin/ -type l -regextype posix-egrep -name 'mackerel-plugin-*' -a ! -regex ".*mackerel-plugin-(${BUNDLE_AGENT_PLUGINS})" -delete
40-
RUN find /usr/bin/ -type l -regextype posix-egrep -name 'check-*' -a ! -regex ".*check-(${BUNDLE_CHECK_PLUGINS})" -delete
37+
# for compat. deb packages installed path.
38+
COPY --from=plugins-builder /go/bin/go-check-plugins /usr/bin/mackerel-check
39+
COPY --from=plugins-builder /go/bin/mackerel-agent-plugins /usr/bin/mackerel-plugin
40+
COPY --from=plugins-builder /go/bin/mackerel-plugin-json /opt/mackerel-agent/plugins/bin/mackerel-plugin-json
41+
COPY --from=plugins-builder /go/bin/mkr /usr/bin/mkr
4142

42-
RUN echo ${MKR_INSTALL_PLUGINS} | tr ' ' '\n' | xargs -I@ mkr plugin install mackerel-plugin-@
43-
ENV PATH $PATH:/opt/mackerel-agent/plugins/bin
43+
ENV PATH=$PATH:/opt/mackerel-agent/plugins/bin
4444

45+
RUN /bin/bash -c 'cd /usr/bin; for i in apache2 elasticsearch fluentd gostats haproxy jmx-jolokia memcached mysql nginx php-apc php-fpm php-opcache plack postgres redis sidekiq snmp squid uwsgi-vassal;do ln -s ./mackerel-plugin mackerel-plugin-$i; done'
46+
RUN /bin/bash -c 'cd /usr/bin; for i in cert-file elasticsearch file-age file-size http jmx-jolokia log memcached mysql postgresql redis ssh ssl-cert tcp;do ln -s ./mackerel-check check-$i; done'

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ module github.com/mackerelio/mackerel-container-agent
22

33
go 1.23.0
44

5-
toolchain go1.24.2
5+
toolchain go1.24.3
66

77
require (
88
github.com/Songmu/retry v0.1.0

plugins/go.mod

Lines changed: 166 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,166 @@
1+
module github.com/mackerelio/mackerel-container-agent/plugins
2+
3+
go 1.24.0
4+
5+
toolchain go1.24.3
6+
7+
require (
8+
filippo.io/edwards25519 v1.1.0 // indirect
9+
github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c // indirect
10+
github.com/Azure/go-ntlmssp v0.0.0-20221128193559-754e69321358 // indirect
11+
github.com/BurntSushi/toml v1.5.0 // indirect
12+
github.com/Microsoft/go-winio v0.6.2 // indirect
13+
github.com/STARRY-S/zip v0.2.3 // indirect
14+
github.com/Songmu/axslogparser v1.4.0 // indirect
15+
github.com/Songmu/go-ltsv v0.1.0 // indirect
16+
github.com/Songmu/postailer v0.0.0-20181014062912-daaa1ba9cc39 // indirect
17+
github.com/Songmu/prompter v0.5.1 // indirect
18+
github.com/Songmu/retry v0.1.0 // indirect
19+
github.com/Songmu/timeout v0.4.0 // indirect
20+
github.com/Songmu/wrapcommander v0.1.0 // indirect
21+
github.com/StackExchange/wmi v1.2.1 // indirect
22+
github.com/agext/levenshtein v1.2.3 // indirect
23+
github.com/andybalholm/brotli v1.1.2-0.20250424173009-453214e765f3 // indirect
24+
github.com/aws/aws-sdk-go v1.55.7 // indirect
25+
github.com/aws/aws-sdk-go-v2 v1.36.3 // indirect
26+
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.10 // indirect
27+
github.com/aws/aws-sdk-go-v2/config v1.29.14 // indirect
28+
github.com/aws/aws-sdk-go-v2/credentials v1.17.67 // indirect
29+
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.30 // indirect
30+
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.34 // indirect
31+
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.34 // indirect
32+
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3 // indirect
33+
github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs v1.50.0 // indirect
34+
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.3 // indirect
35+
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.15 // indirect
36+
github.com/aws/aws-sdk-go-v2/service/sqs v1.38.5 // indirect
37+
github.com/aws/aws-sdk-go-v2/service/sso v1.25.3 // indirect
38+
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.30.1 // indirect
39+
github.com/aws/aws-sdk-go-v2/service/sts v1.33.19 // indirect
40+
github.com/aws/smithy-go v1.22.3 // indirect
41+
github.com/beevik/ntp v1.4.3 // indirect
42+
github.com/bodgit/plumbing v1.3.0 // indirect
43+
github.com/bodgit/sevenzip v1.6.1 // indirect
44+
github.com/bodgit/windows v1.0.1 // indirect
45+
github.com/bradfitz/gomemcache v0.0.0-20250403215159-8d39553ac7cf // indirect
46+
github.com/cespare/xxhash/v2 v2.3.0 // indirect
47+
github.com/containerd/log v0.1.0 // indirect
48+
github.com/cpuguy83/go-md2man/v2 v2.0.7 // indirect
49+
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
50+
github.com/daviddengcn/go-colortext v1.0.0 // indirect
51+
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect
52+
github.com/docker/docker v28.1.1+incompatible // indirect
53+
github.com/docker/go-connections v0.5.0 // indirect
54+
github.com/docker/go-units v0.5.0 // indirect
55+
github.com/dsnet/compress v0.0.2-0.20230904184137-39efe44ab707 // indirect
56+
github.com/fatih/color v1.18.0 // indirect
57+
github.com/fsnotify/fsnotify v1.6.0 // indirect
58+
github.com/fsouza/go-dockerclient v1.12.1 // indirect
59+
github.com/fukata/golang-stats-api-handler v1.0.0 // indirect
60+
github.com/go-asn1-ber/asn1-ber v1.5.8-0.20250403174932-29230038a667 // indirect
61+
github.com/go-ldap/ldap/v3 v3.4.11 // indirect
62+
github.com/go-ole/go-ole v1.3.0 // indirect
63+
github.com/go-redis/redis v6.15.9+incompatible // indirect
64+
github.com/go-sql-driver/mysql v1.9.2 // indirect
65+
github.com/gogo/protobuf v1.3.2 // indirect
66+
github.com/golang/snappy v1.0.0 // indirect
67+
github.com/gomodule/redigo v1.9.2 // indirect
68+
github.com/google/go-github/v49 v49.1.0 // indirect
69+
github.com/google/go-querystring v1.1.0 // indirect
70+
github.com/google/uuid v1.6.0 // indirect
71+
github.com/gosnmp/gosnmp v1.40.0 // indirect
72+
github.com/hashicorp/golang-lru/v2 v2.0.7 // indirect
73+
github.com/itchyny/gojq v0.12.17 // indirect
74+
github.com/itchyny/timefmt-go v0.1.6 // indirect
75+
github.com/jessevdk/go-flags v1.6.1 // indirect
76+
github.com/jmespath/go-jmespath v0.4.0 // indirect
77+
github.com/jmoiron/sqlx v1.4.0 // indirect
78+
github.com/jpillora/backoff v1.0.0 // indirect
79+
github.com/klauspost/compress v1.18.0 // indirect
80+
github.com/klauspost/pgzip v1.2.6 // indirect
81+
github.com/kr/pretty v0.3.1 // indirect
82+
github.com/lib/pq v1.10.9 // indirect
83+
github.com/mackerelio/checkers v0.2.0 // indirect
84+
github.com/mackerelio/go-check-plugins v0.49.0 // indirect
85+
github.com/mackerelio/go-mackerel-plugin v0.1.5 // indirect
86+
github.com/mackerelio/go-mackerel-plugin-helper v0.1.3 // indirect
87+
github.com/mackerelio/go-osstat v0.2.5 // indirect
88+
github.com/mackerelio/golib v1.2.1 // indirect
89+
github.com/mackerelio/mackerel-agent v0.84.3 // indirect
90+
github.com/mackerelio/mackerel-agent-plugins v0.88.2 // indirect
91+
github.com/mackerelio/mackerel-client-go v0.37.0 // indirect
92+
github.com/mackerelio/mackerel-plugin-json v1.2.6 // indirect
93+
github.com/mackerelio/mackerel-plugin-mongodb v1.1.1 // indirect
94+
github.com/mackerelio/mackerel-plugin-mysql v1.3.0 // indirect
95+
github.com/mackerelio/mkr v0.61.0 // indirect
96+
github.com/mattn/go-colorable v0.1.14 // indirect
97+
github.com/mattn/go-encoding v0.0.2 // indirect
98+
github.com/mattn/go-isatty v0.0.20 // indirect
99+
github.com/mattn/go-pipeline v0.0.0-20190323144519-32d779b32768 // indirect
100+
github.com/mattn/go-treasuredata v0.0.0-20170920030233-31758907cfc4 // indirect
101+
github.com/mattn/go-zglob v0.0.6 // indirect
102+
github.com/mholt/archives v0.1.2 // indirect
103+
github.com/michaelklishin/rabbit-hole v1.5.0 // indirect
104+
github.com/miekg/dns v1.1.66 // indirect
105+
github.com/minio/minlz v1.0.1 // indirect
106+
github.com/moby/docker-image-spec v1.3.1 // indirect
107+
github.com/moby/go-archive v0.1.0 // indirect
108+
github.com/moby/patternmatcher v0.6.0 // indirect
109+
github.com/moby/sys/sequential v0.6.0 // indirect
110+
github.com/moby/sys/user v0.4.0 // indirect
111+
github.com/moby/sys/userns v0.1.0 // indirect
112+
github.com/moby/term v0.5.2 // indirect
113+
github.com/montanaflynn/stats v0.7.1 // indirect
114+
github.com/morikuni/aec v1.0.0 // indirect
115+
github.com/motemen/go-colorine v0.0.0-20180816141035-45d19169413a // indirect
116+
github.com/natefinch/atomic v1.0.1 // indirect
117+
github.com/nwaples/rardecode/v2 v2.1.1 // indirect
118+
github.com/nxadm/tail v1.4.8 // indirect
119+
github.com/onsi/gomega v1.35.1 // indirect
120+
github.com/opencontainers/go-digest v1.0.0 // indirect
121+
github.com/opencontainers/image-spec v1.1.1 // indirect
122+
github.com/pierrec/lz4/v4 v4.1.22 // indirect
123+
github.com/pkg/errors v0.9.1 // indirect
124+
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
125+
github.com/power-devops/perfstat v0.0.0-20240221224432-82ca36839d55 // indirect
126+
github.com/redis/go-redis/v9 v9.8.0 // indirect
127+
github.com/russross/blackfriday/v2 v2.1.0 // indirect
128+
github.com/sergi/go-diff v1.3.1 // indirect
129+
github.com/shirou/gopsutil/v3 v3.24.5 // indirect
130+
github.com/sirupsen/logrus v1.9.3 // indirect
131+
github.com/sorairolake/lzip-go v0.3.7 // indirect
132+
github.com/spf13/afero v1.14.0 // indirect
133+
github.com/tatsushid/go-fastping v0.0.0-20160109021039-d7bb493dee3e // indirect
134+
github.com/tcnksm/go-gitconfig v0.1.2 // indirect
135+
github.com/therootcompany/xz v1.0.1 // indirect
136+
github.com/tomasen/fcgi_client v0.0.0-20180423082037-2bb3d819fd19 // indirect
137+
github.com/ulikunitz/xz v0.5.12 // indirect
138+
github.com/urfave/cli v1.22.16 // indirect
139+
github.com/xdg-go/pbkdf2 v1.0.0 // indirect
140+
github.com/xdg-go/scram v1.1.2 // indirect
141+
github.com/xdg-go/stringprep v1.0.4 // indirect
142+
github.com/youmark/pkcs8 v0.0.0-20240726163527-a2c0da244d78 // indirect
143+
github.com/yudai/gojsondiff v1.0.0 // indirect
144+
github.com/yudai/golcs v0.0.0-20170316035057-ecda9a501e82 // indirect
145+
github.com/yusufpapurcu/wmi v1.2.4 // indirect
146+
go.mongodb.org/mongo-driver v1.17.3 // indirect
147+
go4.org v0.0.0-20230225012048-214862532bf5 // indirect
148+
golang.org/x/crypto v0.38.0 // indirect
149+
golang.org/x/mod v0.24.0 // indirect
150+
golang.org/x/net v0.40.0 // indirect
151+
golang.org/x/oauth2 v0.30.0 // indirect
152+
golang.org/x/sync v0.14.0 // indirect
153+
golang.org/x/sys v0.33.0 // indirect
154+
golang.org/x/term v0.32.0 // indirect
155+
golang.org/x/text v0.25.0 // indirect
156+
golang.org/x/tools v0.33.0 // indirect
157+
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect
158+
gopkg.in/yaml.v2 v2.4.0 // indirect
159+
)
160+
161+
tool (
162+
github.com/mackerelio/go-check-plugins
163+
github.com/mackerelio/mackerel-agent-plugins
164+
github.com/mackerelio/mackerel-plugin-json
165+
github.com/mackerelio/mkr
166+
)

0 commit comments

Comments
 (0)