From 8c5b6e22f2d3165a8c895eeeabf5494292de30ee Mon Sep 17 00:00:00 2001 From: jiuxia211 <2064166368@qq.com> Date: Tue, 23 Jul 2024 19:35:58 +0800 Subject: [PATCH] fix: unsuitable go version Signed-off-by: jiuxia211 <2064166368@qq.com> --- .github/workflows/build-fb-image.yaml | 4 +- .github/workflows/build-fd-image.yaml | 6 +- .github/workflows/main.yaml | 8 +-- cmd/fluent-manager/Dockerfile | 2 +- cmd/fluent-watcher/fluentbit/Dockerfile | 4 +- cmd/fluent-watcher/fluentbit/Dockerfile.debug | 2 +- cmd/fluent-watcher/fluentd/Dockerfile.amd64 | 65 ++++++++++++++----- cmd/fluent-watcher/fluentd/Dockerfile.arm64 | 2 +- .../fluentd/Dockerfile.arm64.quick | 2 +- 9 files changed, 63 insertions(+), 32 deletions(-) diff --git a/.github/workflows/build-fb-image.yaml b/.github/workflows/build-fb-image.yaml index e48bf48a5..224ef6b83 100644 --- a/.github/workflows/build-fb-image.yaml +++ b/.github/workflows/build-fb-image.yaml @@ -146,7 +146,7 @@ jobs: - name: Install Go uses: actions/setup-go@v5 with: - go-version: 1.22.5 + go-version: 1.22.0 - uses: actions/cache@v4 with: @@ -190,7 +190,7 @@ jobs: - name: Install Go uses: actions/setup-go@v5 with: - go-version: 1.22.5 + go-version: 1.22.0 - uses: actions/cache@v4 with: diff --git a/.github/workflows/build-fd-image.yaml b/.github/workflows/build-fd-image.yaml index f62580a2b..480448825 100644 --- a/.github/workflows/build-fd-image.yaml +++ b/.github/workflows/build-fd-image.yaml @@ -176,7 +176,7 @@ jobs: - name: Install Go uses: actions/setup-go@v5 with: - go-version: 1.22.5 + go-version: 1.22.0 - uses: actions/cache@v4 with: @@ -218,7 +218,7 @@ jobs: - name: Install Go uses: actions/setup-go@v5 with: - go-version: 1.22.5 + go-version: 1.22.0 - uses: actions/cache@v4 with: @@ -283,7 +283,7 @@ jobs: - name: Install Go uses: actions/setup-go@v5 with: - go-version: 1.22.5 + go-version: 1.22.0 - uses: actions/cache@v4 with: diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml index 0573f0bd6..acfe42920 100644 --- a/.github/workflows/main.yaml +++ b/.github/workflows/main.yaml @@ -46,7 +46,7 @@ jobs: - name: Install Go uses: actions/setup-go@v5 with: - go-version: 1.22.5 + go-version: 1.22.0 - uses: actions/cache@v4 with: @@ -84,7 +84,7 @@ jobs: - name: Install Go uses: actions/setup-go@v5 with: - go-version: 1.22.5 + go-version: 1.22.0 - uses: actions/cache@v4 with: @@ -115,7 +115,7 @@ jobs: - name: Install Go uses: actions/setup-go@v5 with: - go-version: 1.22.5 + go-version: 1.22.0 - uses: actions/cache@v4 with: @@ -149,7 +149,7 @@ jobs: - name: Install Go uses: actions/setup-go@v5 with: - go-version: 1.22.5 + go-version: 1.22.0 - uses: actions/cache@v4 with: diff --git a/cmd/fluent-manager/Dockerfile b/cmd/fluent-manager/Dockerfile index a2c27c3c5..6acc7faf7 100644 --- a/cmd/fluent-manager/Dockerfile +++ b/cmd/fluent-manager/Dockerfile @@ -1,5 +1,5 @@ # Build the manager binary -FROM --platform=$BUILDPLATFORM golang:1.22.5-alpine3.20 as builder +FROM --platform=$BUILDPLATFORM golang:1.22.0-alpine3.19 as builder WORKDIR /workspace # Copy the Go Modules manifests diff --git a/cmd/fluent-watcher/fluentbit/Dockerfile b/cmd/fluent-watcher/fluentbit/Dockerfile index 0474b31e6..2f377ab60 100644 --- a/cmd/fluent-watcher/fluentbit/Dockerfile +++ b/cmd/fluent-watcher/fluentbit/Dockerfile @@ -1,4 +1,4 @@ -FROM golang:1.22.5-alpine3.20 as buildergo +FROM golang:1.22.0-alpine3.19 as buildergo RUN mkdir -p /fluent-bit RUN mkdir -p /code COPY . /code/ @@ -6,7 +6,7 @@ WORKDIR /code RUN echo $(ls -al /code) RUN CGO_ENABLED=0 go build -ldflags '-w -s' -o /fluent-bit/fluent-bit /code/cmd/fluent-watcher/fluentbit/main.go -FROM fluent/fluent-bit:3.1.2-debug +FROM fluent/fluent-bit:3.1.2 LABEL Description="Fluent Bit docker image" Vendor="Fluent" Version="1.0" COPY conf/fluent-bit.conf conf/fluent-bit.yaml conf/parsers.conf /fluent-bit/etc/ diff --git a/cmd/fluent-watcher/fluentbit/Dockerfile.debug b/cmd/fluent-watcher/fluentbit/Dockerfile.debug index 0474b31e6..49902df2a 100644 --- a/cmd/fluent-watcher/fluentbit/Dockerfile.debug +++ b/cmd/fluent-watcher/fluentbit/Dockerfile.debug @@ -1,4 +1,4 @@ -FROM golang:1.22.5-alpine3.20 as buildergo +FROM golang:1.22.0-alpine3.19 as buildergo RUN mkdir -p /fluent-bit RUN mkdir -p /code COPY . /code/ diff --git a/cmd/fluent-watcher/fluentd/Dockerfile.amd64 b/cmd/fluent-watcher/fluentd/Dockerfile.amd64 index e6ac94056..57e993012 100644 --- a/cmd/fluent-watcher/fluentd/Dockerfile.amd64 +++ b/cmd/fluent-watcher/fluentd/Dockerfile.amd64 @@ -1,7 +1,5 @@ -ARG BASE_IMAGE=kubesphere/fluentd -ARG BASE_IMAGE_TAG=latest-arm64-base # Fluentd watcher agent -FROM golang:1.22.5-alpine3.20 as buildergo +FROM golang:1.22.0-alpine3.19 as buildergo RUN mkdir -p /fluentd RUN mkdir -p /code COPY . /code/ @@ -10,25 +8,54 @@ RUN echo $(ls -al /code) RUN CGO_ENABLED=0 go build -ldflags '-w -s' -o /fluentd/fluentd-watcher /code/cmd/fluent-watcher/fluentd/main.go # Fluentd main image -FROM ${BASE_IMAGE}:${BASE_IMAGE_TAG} -LABEL Description="Fluentd docker image" Vendor="Fluent Organization" Version=${BASE_IMAGE_TAG} -ENV TINI_VERSION=0.18.0 +FROM alpine:3.20 +LABEL Description="Fluentd docker image" Vendor="Fluent Organization" Version="1.17.0" # Do not split this into multiple RUN! # Docker creates a layer for every RUN-Statement -# therefore an 'apt-get purge' has no effect -RUN buildDeps=" \ - make gcc g++ libc-dev \ - wget bzip2 gnupg dirmngr\ - " \ +# therefore an 'apk delete' has no effect +RUN apk update \ + && apk add --no-cache \ + ca-certificates \ + ruby ruby-irb ruby-etc ruby-webrick \ + tini \ + && apk add --no-cache --virtual .build-deps \ + build-base linux-headers \ + ruby-dev gnupg \ + && echo 'gem: --no-document' >> /etc/gemrc \ + && gem install oj -v 3.13.22 \ + && gem install json -v 2.6.2 \ + && gem install async -v 1.30.3 \ + && gem install async-http -v 0.56.6 \ && gem install fluentd -v 1.17.0 \ - && apt-get purge -y --auto-remove \ - -o APT::AutoRemove::RecommendsImportant=false \ - $buildDeps \ - && rm -rf /var/lib/apt/lists/* \ + && gem install bigdecimal -v 1.4.4 \ +# NOTE: resolv v0.2.1 includes the fix for CPU spike issue due to DNS resolver. +# This hack is needed for Ruby 2.6.7, 2.7.3 and 3.0.1. (alpine image is still kept on 2.7.3) + && gem install resolv -v 0.2.1 \ + && gem install elasticsearch -v 7.13.3 \ + && gem install elasticsearch-xpack -v 7.13.3 \ + && gem install fluent-plugin-detect-exceptions -v 0.0.14 \ + && gem install \ + fluent-plugin-s3 \ + fluent-plugin-grok-parser \ + fluent-plugin-rewrite-tag-filter \ + fluent-plugin-oss \ + fluent-plugin-dedot_filter \ + fluent-plugin-sumologic_output \ + fluent-plugin-kafka \ + fluent-plugin-label-router \ + fluent-plugin-record-modifier \ + fluent-plugin-multi-format-parser \ + fluent-plugin-aws-elasticsearch-service \ + fluent-plugin-opensearch \ + fluent-plugin-grafana-loki \ + fluent-plugin-cloudwatch-logs \ + fluent-plugin-datadog \ + fluent-plugin-prometheus \ + && apk del .build-deps \ && rm -rf /tmp/* /var/tmp/* /usr/lib/ruby/gems/*/cache/*.gem /usr/lib/ruby/gems/2.*/gems/fluentd-*/test -RUN groupadd -r fluent && useradd -r -g fluent fluent \ +RUN addgroup -S fluent && adduser -S -G fluent fluent \ # for log storage (maybe shared with host) && mkdir -p /fluentd/log \ # configuration/plugins path (default: copied from .) @@ -37,7 +64,11 @@ RUN groupadd -r fluent && useradd -r -g fluent fluent \ ENV FLUENTD_CONF="fluent.conf" -ENV LD_PRELOAD="/usr/lib/libjemalloc.so.2" +ENV LD_PRELOAD="" +# NOTE: resolv v0.2.1 includes the fix for CPU spike issue due to DNS resolver. +# Forcing to load specific version of resolv (instead of bundled by default) is needed for Ruby 2.6.7, 2.7.3 and 3.0.1. +# alpine image is still kept on 2.7.3. See https://pkgs.alpinelinux.org/packages?name=ruby&branch=v3.13 +ENV RUBYLIB="/usr/lib/ruby/gems/2.7.0/gems/resolv-0.2.1/lib" EXPOSE 24224 5140 USER fluent diff --git a/cmd/fluent-watcher/fluentd/Dockerfile.arm64 b/cmd/fluent-watcher/fluentd/Dockerfile.arm64 index fd7d3dc5a..626da521a 100644 --- a/cmd/fluent-watcher/fluentd/Dockerfile.arm64 +++ b/cmd/fluent-watcher/fluentd/Dockerfile.arm64 @@ -1,5 +1,5 @@ # Fluentd watcher agent -FROM golang:1.20.4-alpine3.16 as buildergo +FROM golang:1.22.0-alpine3.19 as buildergo RUN mkdir -p /fluentd RUN mkdir -p /code COPY . /code/ diff --git a/cmd/fluent-watcher/fluentd/Dockerfile.arm64.quick b/cmd/fluent-watcher/fluentd/Dockerfile.arm64.quick index 8eedc149e..b7e008043 100644 --- a/cmd/fluent-watcher/fluentd/Dockerfile.arm64.quick +++ b/cmd/fluent-watcher/fluentd/Dockerfile.arm64.quick @@ -1,7 +1,7 @@ ARG BASE_IMAGE=kubesphere/fluentd ARG BASE_IMAGE_TAG=latest-arm64-base # Fluentd watcher agent -FROM golang:1.20.4-alpine3.16 as buildergo +FROM golang:1.22.0-alpine3.19 as buildergo RUN mkdir -p /fluentd RUN mkdir -p /code COPY . /code/