From f44ac056f6d43691a3c054caf464be0ddb25a1b6 Mon Sep 17 00:00:00 2001 From: Yunkon Kim Date: Thu, 30 May 2024 20:24:15 +0900 Subject: [PATCH] Align Go versions to fix CI failure * Set Go versions 1.21.6 * Enhance Dockerfile --- Dockerfile | 89 ++++++++++++++++++++++++++++------------------------- go.mod | 4 +-- go.sum | 8 ++--- go.work | 2 +- go.work.sum | 5 +++ 5 files changed, 59 insertions(+), 49 deletions(-) diff --git a/Dockerfile b/Dockerfile index eb085f4..1cb2c73 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,19 +2,24 @@ ## Stage 1 - Go Build ############################################################## -FROM golang:1.21-alpine AS builder +FROM golang:1.21.6-alpine AS builder -#RUN apk update && apk add --no-cache bash +# Installing necessary packages +# make for Makefile support +# sqlite-libs and sqlite-dev for SQLite support +# build-base for common build requirements +RUN apk add --no-cache make gcc sqlite-libs sqlite-dev build-base -#RUN apk add gcc +# Set the Current Working Directory inside the container +WORKDIR /go/src/github.com/cloud-barista/cm-beetle -RUN apk add --no-cache sqlite-libs sqlite-dev - -RUN apk add --no-cache build-base - -ADD . /go/src/github.com/cloud-barista/cm-beetle - -WORKDIR /go/src/github.com/cloud-barista/cm-beetle/cmd/cm-beetle +# Copy only necessary files +COPY go.mod go.sum go.work go.work.sum LICENSE Makefile ./ +COPY api ./api +COPY cmd/cm-beetle ./cmd/cm-beetle +# COPY conf ./conf +COPY pkg ./pkg +COPY scripts ./scripts # NOTE - "make prod" executes the commannd, "CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -a -ldflags '-s -w' -o cm-beetle" RUN make prod @@ -25,65 +30,65 @@ RUN make prod FROM ubuntu:22.04 as prod -# use bash RUN rm /bin/sh && ln -s /bin/bash /bin/sh +# Set the Current Working Directory inside the container WORKDIR /app -# COPY --from=builder /go/src/github.com/cloud-barista/cm-beetle/assets/ /app/assets/ - +## Copy the Pre-built binary and necessary files from the previous stage COPY --from=builder /go/src/github.com/cloud-barista/cm-beetle/scripts/ /app/scripts/ - # COPY --from=builder /go/src/github.com/cloud-barista/cm-beetle/conf/ /app/conf/ - COPY --from=builder /go/src/github.com/cloud-barista/cm-beetle/cmd/cm-beetle /app/ COPY --from=builder /go/src/github.com/cloud-barista/cm-beetle/api/ /app/api/ -## Set system endpoints -ENV CMBEETLE_ROOT /app -ENV CBSTORE_ROOT /app -ENV CBLOG_ROOT /app -# ENV CBSPIDER_CALLMETHOD REST -# ENV CBSPIDER_REST_URL http://cb-spider:1024/spider -# ENV CBTUMBLEBUG_CALLMETHOD REST -# ENV CBTUMBLEBUG_REST_URL http://localhost:1323/tumblebug +## Set environment variables +# Set system endpoints +ENV CMBEETLE_ROOT=/app \ + CBSTORE_ROOT=/app \ + CBLOG_ROOT=/app + +# ENV CBSPIDER_CALLMETHOD REST \ +# CBSPIDER_REST_URL http://cb-spider:1024/spider + +ENV CBTUMBLEBUG_CALLMETHOD=REST \ + CBTUMBLEBUG_REST_URL=http://localhost:1323/tumblebug -#RUN /bin/bash -c "source /app/conf/setup.env" ## Logger configuration # Set log file path (default logfile path: ./cm-beetle.log) -ENV LOGFILE_PATH cm-beetle.log -ENV LOGFILE_MAXSIZE 10 -ENV LOGFILE_MAXBACKUPS 3 -ENV LOGFILE_MAXAGE 30 -ENV LOGFILE_COMPRESS false # Set log level, such as trace, debug info, warn, error, fatal, and panic -ENV LOGLEVEL info +ENV LOGFILE_PATH=$CMBEETLE_ROOT/log/cm-beetle.log \ + LOGFILE_MAXSIZE=10 \ + LOGFILE_MAXBACKUPS=3 \ + LOGFILE_MAXAGE=30 \ + LOGFILE_COMPRESS=false \ + LOGLEVEL=info + # Set execution environment, such as development or production -ENV NODE_ENV production +ENV NODE_ENV=production ## Set internal DB config (SQLlite) -ENV DB_URL localhost:3306 -ENV DB_DATABASE cm_beetle -ENV DB_USER cm_beetle -ENV DB_PASSWORD cm_beetle +ENV DB_URL=localhost:3306 \ + DB_DATABASE=cm_beetle \ + DB_USER=cm_beetle \ + DB_PASSWORD=cm_beetle ## Set API access config # API_ALLOW_ORIGINS (ex: https://cloud-barista.org,xxx.xxx.xxx.xxx or * for all) -ENV API_ALLOW_ORIGINS * # Set ENABLE_AUTH=true currently for basic auth for all routes (i.e., url or path) -ENV API_AUTH_ENABLED true -ENV API_USERNAME default -ENV API_PASSWORD default +ENV API_ALLOW_ORIGINS=* \ + API_AUTH_ENABLED=true \ + API_USERNAME=default \ + API_PASSWORD=default ## Set period for auto control goroutine invocation -ENV AUTOCONTROL_DURATION_MS 10000 +ENV AUTOCONTROL_DURATION_MS=10000 ## Set SELF_ENDPOINT, to access Swagger API dashboard outside (Ex: export SELF_ENDPOINT=x.x.x.x:8056) -ENV SELF_ENDPOINT localhost:8056 +ENV SELF_ENDPOINT=localhost:8056 ## Environment variables that you don't need to touch # Swagger UI API document file path -ENV APIDOC_PATH /app/api/swagger.json +ENV APIDOC_PATH=/app/api/swagger.json ENTRYPOINT [ "/app/cm-beetle" ] diff --git a/go.mod b/go.mod index 14a5e3a..4efb7c2 100644 --- a/go.mod +++ b/go.mod @@ -1,11 +1,11 @@ module github.com/cloud-barista/cm-beetle -go 1.22.3 +go 1.21.6 require ( github.com/cloud-barista/cb-store v0.8.0 github.com/cloud-barista/cb-tumblebug v0.8.12 - github.com/cloud-barista/cm-honeybee/agent v0.0.0-20240522171320-cb61f875f480 + github.com/cloud-barista/cm-honeybee/agent v0.0.0-20240530070023-ee1c0a77fbf7 github.com/docker/docker v26.1.3+incompatible github.com/fsnotify/fsnotify v1.7.0 github.com/go-playground/validator/v10 v10.17.0 diff --git a/go.sum b/go.sum index 665b2f0..4fadb77 100644 --- a/go.sum +++ b/go.sum @@ -20,8 +20,8 @@ github.com/cloud-barista/cb-store v0.8.0 h1:0K47YEf+K3wx18D+m0XirlDbdTz229XxsTXw github.com/cloud-barista/cb-store v0.8.0/go.mod h1:6NuA5TdeVRExd59ULXv6LEhm4EE0ODn9L820g4VqApo= github.com/cloud-barista/cb-tumblebug v0.8.12 h1:uc5aOI9q5XhMq7GQ9s7WyWyLoxtklcqib/gdDaSgumw= github.com/cloud-barista/cb-tumblebug v0.8.12/go.mod h1:yOwgw7jXqMdSSgC2g0TvgCG1WyXNw6Q7J6JGfbsqEOw= -github.com/cloud-barista/cm-honeybee/agent v0.0.0-20240522171320-cb61f875f480 h1:Y1UbgOowkkCSjj5WJ0Oq37Peyt98KeDSfSZ2/CgxbSc= -github.com/cloud-barista/cm-honeybee/agent v0.0.0-20240522171320-cb61f875f480/go.mod h1:7RFAKgEd+awKYFwlU6JkKlZHf75wI+STxaYvlADIBoc= +github.com/cloud-barista/cm-honeybee/agent v0.0.0-20240530070023-ee1c0a77fbf7 h1:4r7YI8FlWfk2H/H+fICupvzEjCP+4cCkqG5CMzvhDdo= +github.com/cloud-barista/cm-honeybee/agent v0.0.0-20240530070023-ee1c0a77fbf7/go.mod h1:KFX3RZ0cu13tT/C8ak2eixKaAGCVa1A8hMSC8iFFAts= github.com/cockroachdb/apd v1.1.0/go.mod h1:8Sl8LxpKi29FqWXR16WEFZRNSz3SoPzUzeMeY4+DwBQ= github.com/coreos/go-semver v0.3.1 h1:yi21YpKnrx1gt5R+la8n5WgS0kCrsPp33dmEyHReZr4= github.com/coreos/go-semver v0.3.1/go.mod h1:irMmmIw/7yzSRPWryHsK7EYSg09caPQL03VsM8rvUec= @@ -532,8 +532,8 @@ modernc.org/libc v1.19.0/go.mod h1:ZRfIaEkgrYgZDl6pa4W39HgN5G/yDW+NRmNKZBDFrk0= modernc.org/libc v1.20.3/go.mod h1:ZRfIaEkgrYgZDl6pa4W39HgN5G/yDW+NRmNKZBDFrk0= modernc.org/libc v1.21.4/go.mod h1:przBsL5RDOZajTVslkugzLBj1evTue36jEomFQOoYuI= modernc.org/libc v1.22.2/go.mod h1:uvQavJ1pZ0hIoC/jfqNoMLURIMhKzINIWypNM17puug= -modernc.org/libc v1.50.7 h1:25+61e/ZI1e53ynk8dvS/BvWie3lIJPR1KVlTdGkkCg= -modernc.org/libc v1.50.7/go.mod h1:8lr2m1THY5Z3ikGyUc3JhLEQg1oaIBz/AQixw8/eksQ= +modernc.org/libc v1.50.9 h1:hIWf1uz55lorXQhfoEoezdUHjxzuO6ceshET/yWjSjk= +modernc.org/libc v1.50.9/go.mod h1:15P6ublJ9FJR8YQCGy8DeQ2Uwur7iW9Hserr/T3OFZE= modernc.org/mathutil v1.5.0/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E= modernc.org/mathutil v1.6.0 h1:fRe9+AmYlaej+64JsEEhoWuAYBkOtQiMEU7n/XgfYi4= modernc.org/mathutil v1.6.0/go.mod h1:Ui5Q9q1TR2gFm0AQRqQUaBWFLAhQpCwNcuhBOSedWPo= diff --git a/go.work b/go.work index 1d08009..c4eec06 100644 --- a/go.work +++ b/go.work @@ -1,3 +1,3 @@ -go 1.22.3 +go 1.21.6 use . diff --git a/go.work.sum b/go.work.sum index f4183b2..ff6df50 100644 --- a/go.work.sum +++ b/go.work.sum @@ -270,6 +270,7 @@ github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161/go.mod h1:xomTg6 github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= github.com/BurntSushi/toml v0.4.1/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= github.com/BurntSushi/toml v1.1.0/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= +github.com/Microsoft/go-winio v0.4.14/go.mod h1:qXqCSQ3Xa7+6tgxaGTIe4Kpcdsi+P8jBhyzoq1bpyYA= github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/NeowayLabs/drm v0.0.0-20190824133025-4939fc0ad345/go.mod h1:B8Pf8lJWIsLTs7oyWkXOWOGAZiQQVomlZurKAgx8HBA= @@ -287,6 +288,8 @@ github.com/cloud-barista/cb-log v0.6.4/go.mod h1:nGgfTFMPwl1MpCO3FBjexUkNdOYA0BN github.com/cloud-barista/cb-tumblebug v0.0.0-20230724172618-8f225d0127e8 h1:3aao7cE0ntlhJwl4p9RBaFz6ulM2xXq/SGR/xPxfxYc= github.com/cloud-barista/cb-tumblebug v0.0.0-20230724172618-8f225d0127e8/go.mod h1:RdSc2Ji06owVW3gwkBlZCSPrmxAyzstCWu9fa0emyco= github.com/cloud-barista/cm-beetle/src v0.0.0-20230724172618-8f225d0127e8/go.mod h1:XQuz7L64MNUu04FmG5gB0z41VcrfaLuQP80EGyQTDgo= +github.com/cloud-barista/cm-honeybee v0.1.3 h1:G9Gb2NiiDtw9nRn7v56bpUM5FEfyBYJ8kgIKxZJZSkI= +github.com/cloud-barista/cm-honeybee v0.1.3/go.mod h1:A0Qm1CY4O1hAMxDRnEWjXACztP2D2y/U9GNNJvYzyzM= github.com/cloud-barista/mc-terrarium v0.0.6-0.20240516045927-43023b6a0e18/go.mod h1:qey9GFrJidyJ3tVfeL/gcImgWLqsF64j/fVmBfaddDI= github.com/cncf/udpa/go v0.0.0-20220112060539-c52dc94e7fbe/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI= github.com/cncf/xds/go v0.0.0-20230310173818-32f1caf87195/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= @@ -329,6 +332,7 @@ github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4er github.com/google/pprof v0.0.0-20230323073829-e72429f035bd/go.mod h1:79YE0hCXdHag9sBkw2o+N/YnZtTkXi0UT9Nnixa5eYk= github.com/google/s2a-go v0.1.3/go.mod h1:Ej+mSEMGRnqRzjc7VtF+jdBwYG5fuJfiZ8ELkjEwM0A= github.com/google/s2a-go v0.1.7/go.mod h1:50CgR4k1jNlWBu4UfS4AcfhVe1r6pdZPygJ3R8F0Qdw= +github.com/google/uuid v1.4.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/enterprise-certificate-proxy v0.2.3/go.mod h1:AwSRAtLfXpU5Nm3pW+v7rGDHp09LsPtGY9MduiEsR9k= github.com/googleapis/enterprise-certificate-proxy v0.3.2/go.mod h1:VLSiSSBs/ksPL8kq3OBOQ6WRI2QnaFynd1DCjZ62+V0= github.com/googleapis/gax-go/v2 v2.8.0/go.mod h1:4orTrqY6hXxxaUL4LHIPl6lGo8vAE38/qKbhSAKP6QI= @@ -447,6 +451,7 @@ golang.org/x/term v0.10.0/go.mod h1:lpqdcUyK/oCiQxvxVrppt5ggO2KCZ5QblwqPnfZ6d5o= golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU= golang.org/x/term v0.15.0/go.mod h1:BDl952bC7+uMoWR75FIrCDx79TPU9oHkTZ9yRbYOrX0= golang.org/x/term v0.19.0/go.mod h1:2CuTdWZ7KHSQwUzKva0cbMg6q2DMI3Mmxp+gKJbskEk= +golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028/go.mod h1:NDW/Ps6MPRej6fsCIbMTohpP40sJ/P/vI1MoTEGwX90= google.golang.org/api v0.122.0/go.mod h1:gcitW0lvnyWjSp9nKxAbdHKIZ6vF4aajGueeslZOyms= google.golang.org/api v0.153.0/go.mod h1:3qNJX5eOmhiWYc67jRA/3GsDw97UFb5ivv7Y2PrriAY=