Docker 镜像制作

This commit is contained in:
巴拉迪维 2022-04-25 17:59:46 +08:00
parent 4e9f58a0e7
commit f765a4b0ce
8 changed files with 114 additions and 5 deletions

View File

@ -0,0 +1,19 @@
[repostats]
debug = false
admin_port = 9103
[postgres]
host = postgresql
port = 5432
user = postgres
password = DePmoG_123
database = repostats
max_open_conn = 20
max_idle_conn = 5
[grafana]
host = grafana
port = 3000
user = admin
password = admin

64
docker/local_build.yml Normal file
View File

@ -0,0 +1,64 @@
version: '3'
services:
repostats:
image: baratsemet/repostats-app:${REPOSTATS_VERSION}
container_name: ${REPOSTATS_CONTAINER_NAME}
hostname: repostats
build:
context: ../
dockerfile: docker/repostats.Dockerfile
volumes:
- ../docker/docker_repostats.ini:/app/repostats.ini
ports:
- ${REPOSTATS_LOCAL_PORT}:9103
networks:
- network_repostats
depends_on:
postgres:
condition: service_healthy
postgres:
image: postgres:${PG_VERSION}
container_name: ${PG_CONTAINER_NAME}
hostname: postgresql
environment:
- POSTGRES_USER=${PG_SUPER_USER}
- POSTGRES_PASSWORD=${PG_SUPER_PWD}
- TZ=PRC
- PGTZ=PRC
volumes:
- ../sql/db.sql:/docker-entrypoint-initdb.d/001.sql
- ../sql/gitee.sql:/docker-entrypoint-initdb.d/002.sql
- ../sql/roles.sql:/docker-entrypoint-initdb.d/003.sql
- ../docker/container-data/postgresql:/var/lib/postgresql/data
ports:
- ${PG_LOCAL_PORT}:5432
healthcheck:
test: [ "CMD", "psql", "-U","${PG_SUPER_USER}","-d","repostats" ]
timeout: 10s
interval: 3s
retries: 10
networks:
- network_repostats
grafana:
image: grafana/grafana-oss:${GR_VERSION}
container_name: ${GR_CONTAINER_NAME}
hostname: grafana
volumes:
- ../docker/container-data/grafana:/var/lib/grafana
ports:
- ${GR_LOCAL_PORT}:3000
networks:
- network_repostats
depends_on:
postgres:
condition: service_healthy
networks:
network_repostats:
driver: bridge
name: "network_repostats"
driver_opts:
com.docker.network.enable_ipv6: "true"

View File

@ -0,0 +1,20 @@
##
## Build
##
FROM golang:1.16-alpine AS repostats_builder
ENV GO111MODULE=on
ENV GOPROXY=https://proxy.golang.com.cn,direct
ADD . /app
WORKDIR /app
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags="-s -w" -o repostats
##
## Deploy
##
FROM alpine:latest
RUN apk add -U tzdata && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && apk del tzdata
WORKDIR /app
COPY --from=repostats_builder /app/repostats .
EXPOSE 9103
ENTRYPOINT ["/app/repostats","repostats.ini"]

2
docker/start_local_build.sh Executable file
View File

@ -0,0 +1,2 @@
#!/usr/bin/env bash
docker-compose -p repostats -f local_build.yml --env-file vars.env up -d --build --force-recreate

2
docker/stop_local_build.sh Executable file
View File

@ -0,0 +1,2 @@
#!/usr/bin/env bash
docker-compose -p repostats -f local_build.yml --env-file vars.env down

View File

@ -10,4 +10,9 @@ PG_SUPER_PWD=DePmoG_123
# Grafana Vars
GR_VERSION=8.5.0
GR_CONTAINER_NAME=repostats_gr
GR_LOCAL_PORT=13000
GR_LOCAL_PORT=13000
# RepoStats Vars
REPOSTATS_VERSION=1.0
REPOSTATS_LOCAL_PORT=9103
REPOSTATS_CONTAINER_NAME=repostats_app

View File

@ -14,7 +14,6 @@ import (
"encoding/json"
"fmt"
"html/template"
"log"
"net/http"
gitee_model "repostats/model/gitee"
"repostats/utils"
@ -254,8 +253,6 @@ func CreateGiteeHomeDashboard(token GrafanaToken, folder GrafanaFolder, datasour
return err
}
log.Println(tp.String())
code, rs, err := HttpPost(token.Key, fmt.Sprintf("http://%s:%s/api/dashboards/db", token.Host, token.Port), nil, tp.String())
if err != nil {
return err

View File

@ -57,7 +57,7 @@ func main() {
initRouter(router)
log.Println(fmt.Sprintf("[RepoStats v%s build:%s] starts at http://localhost:%d", utils.Version, utils.Build, utils.RepoStatsConfig.AdminPort))
router.Run(fmt.Sprintf("localhost:%d", utils.RepoStatsConfig.AdminPort))
router.Run(fmt.Sprintf(":%d", utils.RepoStatsConfig.AdminPort))
}
func initRouter(router *gin.Engine) {