From f1c03154918752f966b9b0a641b853707a8f4b88 Mon Sep 17 00:00:00 2001 From: Fusl Date: Tue, 8 Mar 2022 22:59:59 +0000 Subject: [PATCH] ping redis hosts on startup, add build files --- .drone.yml | 18 ++++++++++++++++++ Dockerfile | 9 +++++++++ main.go | 14 ++++++++++++-- 3 files changed, 39 insertions(+), 2 deletions(-) create mode 100644 .drone.yml create mode 100644 Dockerfile diff --git a/.drone.yml b/.drone.yml new file mode 100644 index 0000000..5aac573 --- /dev/null +++ b/.drone.yml @@ -0,0 +1,18 @@ +--- +kind: pipeline +name: default +steps: +- name: docker + image: plugins/docker + settings: + registry: atdr-writer.meo.ws + username: + from_secret: atdr_user + password: + from_secret: atdr_pass + repo: atdr-writer.meo.ws/archiveteam/backfeed + dockerfile: Dockerfile + purge: true + auto_tag: false + tags: + - latest diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..5972b52 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,9 @@ +FROM golang:1.17-alpine AS build +WORKDIR /app +COPY . ./ +RUN go mod download +RUN CGO_ENABLED=0 go build -installsuffix 'static' -o /backfeed . +FROM gcr.io/distroless/static +WORKDIR / +COPY --from=build /backfeed /backfeed +ENTRYPOINT ["/backfeed"] diff --git a/main.go b/main.go index ad6bf48..f516847 100644 --- a/main.go +++ b/main.go @@ -471,14 +471,14 @@ func main() { trackerRedisOptions, err := redis.ParseURL(os.Getenv("REDIS_TRACKER")) if err != nil { - log.Panicf("%s", err) + log.Panicf("invalid REDIS_TRACKER url: %s", err) } trackerRedisOptions.ReadTimeout = 15 * time.Minute trackerRedisClient := redis.NewClient(trackerRedisOptions) legacyRedisOptions, err := redis.ParseURL(os.Getenv("REDIS_LEGACY")) if err != nil { - log.Panicf("%s", err) + log.Panicf("invalid REDIS_LEGACY url: %s", err) } legacyRedisOptions.ReadTimeout = 15 * time.Minute legacyRedisClient := redis.NewClient(legacyRedisOptions) @@ -490,6 +490,16 @@ func main() { ReadTimeout: 15 * time.Minute, }) + if err := trackerRedisClient.Ping(context.Background()).Err(); err != nil { + log.Panicf("unable to ping tracker redis: %s", err) + } + if err := backfeedRedisClient.Ping(context.Background()).Err(); err != nil { + log.Panicf("unable to ping backfeed redis: %s", err) + } + if err := legacyRedisClient.Ping(context.Background()).Err(); err != nil { + log.Panicf("unable to ping legacy redis: %s", err) + } + globalBackfeedManager := &GlobalBackfeedManager{ ActiveFeeds: map[string]*ProjectBackfeedManager{}, ActiveSlugs: map[string]string{},