From 446ea5813158f158fae4761eb3ab963b9dab5d8e Mon Sep 17 00:00:00 2001 From: medcl Date: Mon, 20 Apr 2020 14:14:51 +0800 Subject: [PATCH] update docker build --- Makefile | 4 ++- README.md | 17 ++++++++++--- docker/Dockerfile | 29 ++++++++++++++++++++++ docker/deploy.key | 38 +++++++++++++++++++++++++++++ docker/docker-compose-mysql.dev.yml | 12 +++++++++ docker/docker-compose.dev.yml | 21 ++++++++++++++++ docker/entrypoint.sh | 10 ++++++++ docker/ssh_config | 2 ++ logging-center.yml | 4 +-- 9 files changed, 131 insertions(+), 6 deletions(-) create mode 100644 docker/Dockerfile create mode 100644 docker/deploy.key create mode 100644 docker/docker-compose-mysql.dev.yml create mode 100644 docker/docker-compose.dev.yml create mode 100644 docker/entrypoint.sh create mode 100644 docker/ssh_config diff --git a/Makefile b/Makefile index 87e0d271..673d0449 100644 --- a/Makefile +++ b/Makefile @@ -28,7 +28,7 @@ OLDGOPATH:= $(GOPATH) NEWGOPATH:= $(CURDIR):$(CURDIR)/vendor:$(GOPATH) GO := GO15VENDOREXPERIMENT="1" GO111MODULE=off go -GOBUILD := GOPATH=$(NEWGOPATH) CGO_ENABLED=1 $(GO) build -ldflags -s -gcflags "-m -m" +GOBUILD := GOPATH=$(NEWGOPATH) CGO_ENABLED=1 $(GO) build -ldflags -s -gcflags "-m" -x --work GOBUILDNCGO := GOPATH=$(NEWGOPATH) CGO_ENABLED=0 $(GO) build -ldflags -s GOTEST := GOPATH=$(NEWGOPATH) CGO_ENABLED=1 $(GO) test -ldflags -s @@ -123,6 +123,8 @@ init: @mkdir -p $(INFINI_BASE_FOLDER) @if [ ! -d $(FRAMEWORK_FOLDER) ]; then echo "framework does not exist";(cd $(INFINI_BASE_FOLDER)&&git clone -b $(FRAMEWORK_BRANCH) ssh://git@git.infini.ltd:64221/infini/framework.git) fi @if [ ! -d $(FRAMEWORK_VENDOR_FOLDER) ]; then echo "framework vendor does not exist";(git clone -b $(FRAMEWORK_VENDOR_BRANCH) ssh://git@git.infini.ltd:64221/infini/framework-vendor.git vendor) fi + @if [ "" == $(FRAMEWORK_OFFLINE_BUILD) ]; then (cd $(FRAMEWORK_FOLDER) && git pull origin $(FRAMEWORK_BRANCH)); fi; + @if [ "" == $(FRAMEWORK_OFFLINE_BUILD) ]; then (cd vendor && git pull origin $(FRAMEWORK_VENDOR_BRANCH)); fi; update-generated-file: @echo "update generated info" diff --git a/README.md b/README.md index b20fd5f2..1078adfb 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ INFINI Logging Center ## 前端开发说明 -前端采用 React 开发,最终输出为 `public` 目录的纯静态资源,可以独立部署无需依赖 Node 环境。 +前端采用 React 开发,最终输出为 `.public` 目录的纯静态资源,可以独立部署无需依赖 Node 环境。 ### Docker 开发环境准备 @@ -69,14 +69,13 @@ cnpm run dev 前端开发:在浏览器中访问:[http://localhost:10000](http://localhost:10000),使用 Mock 接口数据。 - ### 编译静态资源 ```sh cnpm run build ``` -执行该命令后会生成最终的 HTML、CSS 和 JS 到 `/public` 目录下。它们是浏览器可以直接识别并运行的代码,这样你就可以将它们部署到你想要的服务器上了。 +执行该命令后会生成最终的 HTML、CSS 和 JS 到 `/.public` 目录下。它们是浏览器可以直接识别并运行的代码,这样你就可以将它们部署到你想要的服务器上了。 或者使用 Docker 来打包生成。 ``` @@ -89,6 +88,18 @@ cnpm install --save md5 ``` +## 后端开发说明 + +后端采用 Golang 开发,最终输出为 `bin` 目录的可执行文件 `logging-center` 和配置文件 `logging-center.yml`。 + +### Docker 开发环境 + +``` +cd docker +docker-compose -f docker-compose.dev.yml up +``` + +Docker 实例每次启动都会重新编译打包,并启动监听端口 `9000`,使用浏览器打开 `localhost:9000` 即可看到最终效果。 ## 启动 MySQL 服务器 diff --git a/docker/Dockerfile b/docker/Dockerfile new file mode 100644 index 00000000..a8d63159 --- /dev/null +++ b/docker/Dockerfile @@ -0,0 +1,29 @@ +FROM golang:alpine + +ENV TIME_ZONE=Asia/Shanghai + +RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories \ + && apk update \ + && apk add --no-cache shadow git bash perl openssh vim tar curl python python-dev py-pip gcc g++ libcurl make\ + && usermod -s /bin/bash root \ + && rm -rf /var/cache/apk/* + + +RUN \ + mkdir -p /go/src/infini.sh/ \ + && apk add --no-cache tzdata \ + && echo "${TIME_ZONE}" > /etc/timezone \ + && ln -sf /usr/share/zoneinfo/${TIME_ZONE} /etc/localtime + +WORKDIR /go/src/infini.sh/ + +COPY ./entrypoint.sh / +COPY ./ssh_config /etc/ssh/ssh_config +COPY deploy.key /root/.ssh/id_rsa +RUN perl -pi -e 's/\r\n/\n/g' /root/.ssh/id_rsa +RUN chmod 600 /root/.ssh/id_rsa + +EXPOSE 9000 + +#CMD npm run dev +ENTRYPOINT ["/entrypoint.sh"] \ No newline at end of file diff --git a/docker/deploy.key b/docker/deploy.key new file mode 100644 index 00000000..e684174d --- /dev/null +++ b/docker/deploy.key @@ -0,0 +1,38 @@ +-----BEGIN OPENSSH PRIVATE KEY----- +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 +-----END OPENSSH PRIVATE KEY----- diff --git a/docker/docker-compose-mysql.dev.yml b/docker/docker-compose-mysql.dev.yml new file mode 100644 index 00000000..a2cd1a6e --- /dev/null +++ b/docker/docker-compose-mysql.dev.yml @@ -0,0 +1,12 @@ +version: '3' + +services: + infini-logging-db: + image: mariadb:10.1.19 + # volumes: + # - ../data/db_data:/var/lib/mysql + restart: always + environment: + MYSQL_ROOT_PASSWORD: admin + ports: + - "3306:3306" diff --git a/docker/docker-compose.dev.yml b/docker/docker-compose.dev.yml new file mode 100644 index 00000000..9549f294 --- /dev/null +++ b/docker/docker-compose.dev.yml @@ -0,0 +1,21 @@ +version: "3.5" + +services: + infini-logging-build: + # option 1: pull image from infini docker registry + image: docker.infini.ltd:64443/golang-dev:latest + + # # option 2: build image locally +# build: +# context: . +# dockerfile: ./Dockerfile + + ports: + - 9000:9000 + container_name: "infini-golang-dev" + volumes: + - ../:/go/src/infini.sh/logging-center + - ./entrypoint.sh:/entrypoint.sh + +volumes: + dist: \ No newline at end of file diff --git a/docker/entrypoint.sh b/docker/entrypoint.sh new file mode 100644 index 00000000..a7ef2ec9 --- /dev/null +++ b/docker/entrypoint.sh @@ -0,0 +1,10 @@ +#!/bin/sh + +cd /go/src/infini.sh/ + +echo "INFINI GOLANG ENV READY TO ROCK!" + +cd logging-center +make build + +cd /go/src/infini.sh/logging-center && ./bin/logging-center \ No newline at end of file diff --git a/docker/ssh_config b/docker/ssh_config new file mode 100644 index 00000000..2d47a8b7 --- /dev/null +++ b/docker/ssh_config @@ -0,0 +1,2 @@ +Host * + StrictHostKeyChecking no \ No newline at end of file diff --git a/logging-center.yml b/logging-center.yml index 559cac98..b3ea8698 100644 --- a/logging-center.yml +++ b/logging-center.yml @@ -1,7 +1,7 @@ elasticsearch: - name: default enabled: true - endpoint: http://localhost:9200 + endpoint: http://192.168.3.98:9200 index_prefix: infini- basic_auth: username: elastic @@ -11,7 +11,7 @@ modules: - name: web enabled: true network: - binding: 127.0.0.1:9000 + binding: 0.0.0.0:9000 logging-center: index_name: reports