从网上随便找了几个image,都是从svn下载的代码,根本跑不了,于是自己重新做了个,从git上拿的源码,只是build出来的image有点大,有时间再优化了

Dockerfile

FROM centos:centos7
MAINTAINER Ryan sun.ryan@acxiom.com ENV ZABBIX_VERSION=3.0.1 \
ZABBIX_SERVER=127.0.0.1 \
ZABBIX_SOURCE=zabbix-agent.${ZABBIX_VERSION}.tar.gz \
HOSTNAME=zabbix.agent \
HOST_METADATA=zabbix.agent \
CONFIG_FILE=/usr/local/etc/zabbix_agentd.conf RUN \
yum clean all && yum makecache && \
yum install --nogpgcheck -y automake gcc make iproute ADD ./${ZABBIX_SOURCE} /usr/local/src/ WORKDIR /usr/local/src RUN \
cd ./zabbix && \
./bootstrap.sh && \
./configure --enable-agent && \
make install RUN \
rpm -e --nodeps make gcc && \
yum remove -y automake && \
useradd -G wheel zabbix && \
rm -rf /usr/local/src/zabbix && \
yum clean all COPY ./bootstrap.sh / RUN \
chown -R zabbix:wheel /usr/local/etc/ USER zabbix EXPOSE 10050 ENTRYPOINT ["/bootstrap.sh"]

bootstrap.sh

#!/bin/sh
set -eu
export TERM=xterm # Bash Colors
red=`tput setaf 1`
green=`tput setaf 2`
yellow=`tput setaf 3`
white=`tput setaf 7`
bold=`tput bold`
reset=`tput sgr0`
separator=$(echo && printf '=%.0s' {1..100} && echo)
# Logging Finctions
log() {
if [[ "$@" ]]; then echo "${bold}${green}[LOG `date +'%T'`]${reset} $@"; else echo; fi
} ### Update config file based on environment variables
update_config() {
log "Updating configuration file..."
if [ ! -z "$ZABBIX_SERVER" ]; then
log "Changing Zabbix Server IP to ${bold}${white}${ZABBIX_SERVER}${reset}"
sed -i 's/^[# ]*Server=.*$/Server='$ZABBIX_SERVER'/g' ${TARGET_CONFIG_FILE}
fi
if [ ! -z "$HOSTNAME" ]; then
log "Changing Zabbix Hostname to ${bold}${white}${HOSTNAME}${reset}."
sed -i 's/^[# ]*Hostname=.*$/Hostname='$HOSTNAME'/g' ${TARGET_CONFIG_FILE}
fi
if [ ! -z "$HOST_METADATA" ]; then
log "Changing Zabbix Host Metadata to ${bold}${white}${HOST_METADATA}${reset}."
sed -i 's/^[# ]*HostMetadata=.*$/HostMetadata='$HOST_METADATA'/g' ${TARGET_CONFIG_FILE}
fi
log "Config updated"
}
print_config() {
log "Current Zabbix Agent config:"
printf '=%.0s' {1..100} && echo
cat ${TARGET_CONFIG_FILE}
echo ""
printf '=%.0s' {1..100} && echo
}
start() {
log "Starting Zabbix Agent using configuration file: ${TARGET_CONFIG_FILE}"
print_config
zabbix_agentd -f -c ${TARGET_CONFIG_FILE}
} # Use the default config file if not set by an environment variable
if [ -z "$CONFIG_FILE" ]; then
SRC_CONFIG_FILE="/usr/local/etc/zabbix_agentd.conf"
else
SRC_CONFIG_FILE="$CONFIG_FILE"
fi # This is the actual config file used, containing changes implied by environment variables
TARGET_CONFIG_FILE=$(mktemp)
log "Loading config: ${SRC_CONFIG_FILE}"
cp "$SRC_CONFIG_FILE" "$TARGET_CONFIG_FILE" update_config
start

  

  

从git源码安装zabbix-agent的更多相关文章

  1. 源码安装zabbix

    源码安装zabbix 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.     欢迎加入:高级运维工程师之路 598432640 前言:参考网上多篇源码安装的连接,自己把安装过程丢在这 ...

  2. 以源码安装的lamp环境为依托,源码安装zabbix监控系统

    1.源码安装lamp环境 1)安装httpd, 以源码httpd-2.4.33为基础,解压后,执行./configure --prefix=/usr/local/ --sysconfdir=/etc/ ...

  3. CentOS Linux release 7.3源码安装zabbix

    CentOS Linux release 7.3安装zabbix 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 前言: 我去年用用centos6的环境搭建了一下 zabbix3.0 ...

  4. CentOS 7 源码安装 Zabbix 6.0

    Zabbix 主要有以下几个组件组成: Zabbix Server:Zabbix 服务端,是 Zabbix 的核心组件.它负责接收监控数据并触发告警,还负责将监控数据持久化到数据库中. Zabbix ...

  5. Git源码安装

    系统自带yum安装的git版本较老,需要安装最新版本可以使用源码安装 下载最新安装包,下载地址https://github.com/git/git/releases 安装依赖包 yum install ...

  6. CentOS 6.5 Git源码安装

    首先清除系统自带git,使用如下命令 yum -y remove git 一.下载Git源码包 wget https://www.kernel.org/pub/software/scm/git/git ...

  7. git 源码安装后报错/usr/bin/git: No such file or directory

    现象 今天源码安装一个git后,执行git命令后报如下错误: $ git --version -bash: /usr/bin/git: No such file or directory 分析过程 开 ...

  8. CentOS6源码安装zabbix服务器

    1.下载安装包并解压 2.预环境搭建 3.创建zabbix用户,编译安装zabbix 4.配置mysql 5.配置zabbix-server 6.配置apache和php 7.添加开机自启动 1 yu ...

  9. Git源码安装 Linux指定安装目录

    1.安装依赖包 $ yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel 2.下载最新版源码包https: ...

随机推荐

  1. nfs server and client

    系统环境:Centos7.3 ip1:10.0.0.1 ip2:10.0.0.2 检测是否安装NFS服务 rpm -qa | grep   nfs rpm  -qa|grep    nfs 安装NFS ...

  2. 百度地图api的简单应用

    百度地图api 获取经纬度(通过浏览器的) //获取经纬度 window.navigator.geolocation.getCurrentPosition(function(position) { a ...

  3. hdu3416 Marriage Match IV 最短路+ 最大流

    此题的大意:给定一幅有向图,求起点到终点(都是固定的)的不同的最短路有多少条.不同的最短路是说不能有相同的边,顶点可以重复.并且图含有平行边. 看了题以后,就想到暴力,但是暴力往往是不可取的.(暴力的 ...

  4. 二.Windows I/O模型之异步选择(WSAAsyncSelect)模型

    1.基于windows消息为基础的网络事件io模型.因此我们必须要在窗口程序中使用该模型.该模型中的核心是调用WSAAsyncSelect函数实现异步I/O. 2.WSAAsyncSelect函数:注 ...

  5. 将自己的类封装为lib的方法

    前言: Windows API中所有的函数都包含在dll中,其中有3个最重要的DLL. (1)   Kernel32.dll 它包含那些用于管理内存.进程和线程的函数,例如CreateThread函数 ...

  6. SQL数据查询2

    USE h CREATE TABLE zy1( empno INT, ename ), job ), mgr INT, hiredate DATE, sal DOUBLE, COOM DOUBLE, ...

  7. Linux搭建Jenkins

    1.添加存储库 yum的repo中默认没有Jenkins,需要先将Jenkins存储库添加到yum repos,执行下面的命令: 使用wget -O下载并以不同的文件名保存 [root@besttes ...

  8. Cocos2d切换场景出现的问题-error C2653: “***”不是类或命名空间名称

    1,在开头引入头文件 2,在要引入的头文件中,去除以下代码: #ifndef __HELLOWORLD_SCENE_H__ #define __HELLOWORLD_SCENE_H__ #endif ...

  9. 如何在GitHub部署自己的个人网站

    前段时间在B站学习了怎样做一个静态网页(up主是  表严肃 ),朋友问我他能不能访问我的这个静态网页,我说还没把它挂到网上.今天看见一篇文章说可以在GitHub部署自己的个人网站,心血来潮,想做一个玩 ...

  10. Ubuntu16.04编译cmake源码

    编译版本:cmake-3.8.0-rc2 为了能够编译出ccmake和cmake-gui,首先需要安装libncurses5-dev sudo apt install libncurses5-dev ...