ソースを参照

reduce docker image size (#615)

and fix metric_list_file using abs_path
laiwei 6 年 前
コミット
e7153389f8
3 ファイル変更16 行追加6 行削除
  1. 6 0
      .dockerignore
  2. 5 6
      Dockerfile
  3. 5 0
      docker/ctrl.sh

+ 6 - 0
.dockerignore

@@ -0,0 +1,6 @@
+docs/
+outrun/
+tmp/
+bin/
+*.tar.gz
+open-falcon

+ 5 - 6
Dockerfile

@@ -1,21 +1,20 @@
-FROM golang:1.10-alpine3.7
+FROM openfalcon/makegcc-golang:1.10-alpine
 LABEL maintainer laiwei.ustc@gmail.com
 USER root
 
-ENV FALCON_DIR=/open-falcon
-ENV PROJ_PATH=${GOPATH}/src/github.com/open-falcon/falcon-plus
+ENV FALCON_DIR=/open-falcon PROJ_PATH=${GOPATH}/src/github.com/open-falcon/falcon-plus
 
 RUN mkdir -p $FALCON_DIR && \
-    apk add --no-cache ca-certificates bash git g++ perl make supervisor
+    mkdir -p $FALCON_DIR/logs && \
+    apk add --no-cache ca-certificates bash git supervisor
 COPY . ${PROJ_PATH}
 
 WORKDIR ${PROJ_PATH}
+ADD docker/supervisord.conf /etc/supervisord.conf
 RUN make all \
     && make pack4docker \
     && tar -zxf open-falcon-v*.tar.gz -C ${FALCON_DIR} \
     && rm -rf ${PROJ_PATH}
-ADD docker/supervisord.conf /etc/supervisord.conf
-RUN mkdir -p $FALCON_DIR/logs
 
 EXPOSE 8433 8080
 WORKDIR ${FALCON_DIR}

+ 5 - 0
docker/ctrl.sh

@@ -4,15 +4,20 @@ DOCKER_DIR=/open-falcon
 of_bin=$DOCKER_DIR/open-falcon
 DOCKER_HOST_IP=$(route -n | awk '/UG[ \t]/{print $2}')
 
+#use the correct mysql instance
 if [ -z $MYSQL_PORT ]; then
     MYSQL_PORT=$DOCKER_HOST_IP:3306
 fi
 find $DOCKER_DIR/*/config/*.json -type f -exec sed -i "s/%%MYSQL%%/$MYSQL_PORT/g" {} \;
 
 
+#use the correct redis instance
 if [ -z $REDIS_PORT ]; then
     REDIS_PORT=$DOCKER_HOST_IP:6379
 fi
 find $DOCKER_DIR/*/config/*.json -type f -exec sed -i "s/%%REDIS%%/$REDIS_PORT/g" {} \;
 
+#use absolute path of metric_list_file in docker
+TAB=$'\t'; sed -i "s|.*metric_list_file.*|${TAB}\"metric_list_file\": \"$DOCKER_DIR/api/data/metric\",|g" $DOCKER_DIR/api/config/*.json;
+
 supervisorctl $*