update docker build

This commit is contained in:
medcl 2020-04-20 14:14:51 +08:00
parent 5f53d45b27
commit 446ea58131
9 changed files with 131 additions and 6 deletions

View File

@ -28,7 +28,7 @@ OLDGOPATH:= $(GOPATH)
NEWGOPATH:= $(CURDIR):$(CURDIR)/vendor:$(GOPATH) NEWGOPATH:= $(CURDIR):$(CURDIR)/vendor:$(GOPATH)
GO := GO15VENDOREXPERIMENT="1" GO111MODULE=off go 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 GOBUILDNCGO := GOPATH=$(NEWGOPATH) CGO_ENABLED=0 $(GO) build -ldflags -s
GOTEST := GOPATH=$(NEWGOPATH) CGO_ENABLED=1 $(GO) test -ldflags -s GOTEST := GOPATH=$(NEWGOPATH) CGO_ENABLED=1 $(GO) test -ldflags -s
@ -123,6 +123,8 @@ init:
@mkdir -p $(INFINI_BASE_FOLDER) @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_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 [ ! -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: update-generated-file:
@echo "update generated info" @echo "update generated info"

View File

@ -5,7 +5,7 @@ INFINI Logging Center
## 前端开发说明 ## 前端开发说明
前端采用 React 开发,最终输出为 `public` 目录的纯静态资源,可以独立部署无需依赖 Node 环境。 前端采用 React 开发,最终输出为 `.public` 目录的纯静态资源,可以独立部署无需依赖 Node 环境。
### Docker 开发环境准备 ### Docker 开发环境准备
@ -69,14 +69,13 @@ cnpm run dev
前端开发:在浏览器中访问:[http://localhost:10000](http://localhost:10000),使用 Mock 接口数据。 前端开发:在浏览器中访问:[http://localhost:10000](http://localhost:10000),使用 Mock 接口数据。
### 编译静态资源 ### 编译静态资源
```sh ```sh
cnpm run build cnpm run build
``` ```
执行该命令后会生成最终的 HTML、CSS 和 JS 到 `/public` 目录下。它们是浏览器可以直接识别并运行的代码,这样你就可以将它们部署到你想要的服务器上了。 执行该命令后会生成最终的 HTML、CSS 和 JS 到 `/.public` 目录下。它们是浏览器可以直接识别并运行的代码,这样你就可以将它们部署到你想要的服务器上了。
或者使用 Docker 来打包生成。 或者使用 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 服务器 ## 启动 MySQL 服务器

29
docker/Dockerfile Normal file
View File

@ -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"]

38
docker/deploy.key Normal file
View File

@ -0,0 +1,38 @@
-----BEGIN OPENSSH PRIVATE KEY-----
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
-----END OPENSSH PRIVATE KEY-----

View File

@ -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"

View File

@ -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:

10
docker/entrypoint.sh Normal file
View File

@ -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

2
docker/ssh_config Normal file
View File

@ -0,0 +1,2 @@
Host *
StrictHostKeyChecking no

View File

@ -1,7 +1,7 @@
elasticsearch: elasticsearch:
- name: default - name: default
enabled: true enabled: true
endpoint: http://localhost:9200 endpoint: http://192.168.3.98:9200
index_prefix: infini- index_prefix: infini-
basic_auth: basic_auth:
username: elastic username: elastic
@ -11,7 +11,7 @@ modules:
- name: web - name: web
enabled: true enabled: true
network: network:
binding: 127.0.0.1:9000 binding: 0.0.0.0:9000
logging-center: logging-center:
index_name: reports index_name: reports