-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathDockerfile
133 lines (121 loc) · 5.15 KB
/
Dockerfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
FROM ubuntu:16.04
LABEL maintainer "YI WANG <[email protected]>"
ARG APT_FLAGS_COMMON="-qq -y"
ARG APT_FLAGS_PERSISTANT="${APT_FLAGS_COMMON} --no-install-recommends"
ARG APT_FLAGS_DEV="${APT_FLAGS_COMMON} --no-install-recommends"
RUN addgroup --system --quiet zabbix && \
adduser --quiet \
--system --disabled-login \
--ingroup zabbix \
--home /var/lib/zabbix/ \
zabbix && \
mkdir -p /etc/zabbix && \
mkdir -p /etc/zabbix/zabbix_agentd.d && \
mkdir -p /var/lib/zabbix && \
mkdir -p /var/lib/zabbix/enc && \
mkdir -p /var/lib/zabbix/modules && \
chown --quiet -R zabbix:root /var/lib/zabbix && \
apt-get ${APT_FLAGS_COMMON} update && \
apt-get ${APT_FLAGS_PERSISTANT} install \
supervisor \
libpcre3 \
git\
libssl1.0.0 1>/dev/null && \
apt-get ${APT_FLAGS_COMMON} autoremove && \
apt-get ${APT_FLAGS_COMMON} clean && \
rm -rf /var/lib/apt/lists/*
ARG MAJOR_VERSION=3.4
ARG ZBX_VERSION=${MAJOR_VERSION}.1
ARG ZBX_SOURCES=https://git.zabbix.com/scm/zbx/zabbix.git
ENV ZBX_VERSION=${ZBX_VERSION} ZBX_SOURCES=${ZBX_SOURCES}
RUN apt-get ${APT_FLAGS_COMMON} update && \
apt-get ${APT_FLAGS_DEV} install \
gcc \
make \
automake \
libc6-dev \
pkg-config \
libssl-dev \
libpcre3-dev \
sudo \
ca-certificates 1>/dev/null && \
cd /tmp/ && \
git clone ${ZBX_SOURCES} --branch ${ZBX_VERSION} --depth 1 --single-branch zabbix-${ZBX_VERSION} && \
cd /tmp/zabbix-${ZBX_VERSION} && \
zabbix_revision=`git rev-parse --short HEAD` && \
sed -i "s/{ZABBIX_REVISION}/$zabbix_revision/g" include/version.h && \
./bootstrap.sh 1>/dev/null && \
export CFLAGS="-fPIC -pie -Wl,-z,relro -Wl,-z,now" && \
./configure \
--prefix=/usr \
--silent \
--sysconfdir=/etc/zabbix \
--libdir=/usr/lib/zabbix \
--datadir=/usr/lib \
--enable-agent \
--enable-ipv6 \
--with-openssl && \
make -j"$(nproc)" -s 1>/dev/null && \
cp src/zabbix_agent/zabbix_agentd /usr/sbin/zabbix_agentd && \
cp conf/zabbix_agentd.conf /etc/zabbix/ && \
chown --quiet -R zabbix:root /etc/zabbix && \
cd /tmp/ && \
rm -rf /tmp/zabbix-${ZBX_VERSION}/ && \
apt-get ${APT_FLAGS_COMMON} purge \
gcc \
make \
automake \
libc6-dev \
pkg-config \
libssl-dev \
libpcre3-dev \
ca-certificates 1>/dev/null && \
apt-get ${APT_FLAGS_COMMON} autoremove && \
apt-get ${APT_FLAGS_COMMON} clean && \
rm -rf /var/lib/apt/lists/*
RUN rm -rf /etc/sudoers && \
touch /etc/sudoers && \
echo "Defaults env_reset" >> /etc/sudoers && \
echo "Defaults mail_badpass" >> /etc/sudoers && \
echo "Defaults secure_path=\"/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin\"" >> /etc/sudoers && \
echo "root ALL=(ALL:ALL) ALL" >> /etc/sudoers && \
echo "zabbix ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers && \
echo "%admin ALL=(ALL) ALL" >> /etc/sudoers && \
echo "%sudo ALL=(ALL:ALL) ALL" >> /etc/sudoers && \
chmod 400 /etc/sudoers && \
apt-get ${APT_FLAGS_COMMON} update && \
apt-get ${APT_FLAGS_COMMON} install curl jq bc git wget tcpdump net-tools tzdata
RUN echo "Asia/Shanghai" > /etc/timezone && ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo 0 > /now && \
echo -2 > /height && \
echo 0 > /status && \
echo "UserParameter=chain.height,sudo /bin/bash /getHeight.sh" >> /etc/zabbix/zabbix_agentd.d/zabbix_fabric.conf && \
echo "UserParameter=chain.TaskStatus,sudo /bin/bash /getStatus.sh" >> /etc/zabbix/zabbix_agentd.d/zabbix_fabric.conf && \
echo "UserParameter=chain.block,sudo /bin/bash /getBlock.sh" >> /etc/zabbix/zabbix_agentd.d/zabbix_fabric.conf && \
echo "UserParameter=chain.net,sudo /bin/bash /getNet.sh" >> /etc/zabbix/zabbix_agentd.d/zabbix_fabric.conf && \
echo "UserParameter=chain.logs,sudo /bin/bash /getLogs.sh" >> /etc/zabbix/zabbix_agentd.d/zabbix_fabric.conf && \
echo "UserParameter=chain.disk,sudo /bin/bash /getDisk.sh" >> /etc/zabbix/zabbix_agentd.d/zabbix_fabric.conf && \
mkdir /chain && \
echo '#!/bin/bash' > /chain/create.sh && \
echo 'echo 000' >> /chain/create.sh && \
echo '#!/bin/bash' > /chain/init.sh && \
echo 'echo 000' >> /chain/init.sh && \
echo '#!/bin/bash' > /chain/sendTransaction.sh && \
echo 'echo 000' >> /chain/sendTransaction.sh && \
echo '#!/bin/bash' > /chain/changeStatus.sh && \
echo 'echo $1 > /status' >> /chain/changeStatus.sh && \
echo 'echo $1' >> /chain/changeStatus.sh
RUN curl -sSL https://get.daocloud.io/docker | sh
EXPOSE 10050/TCP
WORKDIR /var/lib/zabbix
VOLUME ["/etc/zabbix/zabbix_agentd.d", "/var/lib/zabbix/enc", "/var/lib/zabbix/modules"]
ADD conf/etc/supervisor/ /etc/supervisor/
ADD run_zabbix_component.sh /
ADD getHeight.sh /
ADD getStatus.sh /
ADD getBlock.sh /
ADD getNet.sh /
ADD getLogs.sh /
ADD getDisk.sh /
ENTRYPOINT ["/bin/bash"]
CMD ["/run_zabbix_component.sh", "agentd", "none"]