⚝
One Hat Cyber Team
⚝
Your IP:
216.73.216.50
Server IP:
41.128.143.86
Server:
Linux host.raqmix.cloud 6.8.0-1025-azure #30~22.04.1-Ubuntu SMP Wed Mar 12 15:28:20 UTC 2025 x86_64
Server Software:
Apache
PHP Version:
8.3.23
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
proc
/
thread-self
/
root
/
usr
/
share
/
grafana
/
Edit File: Dockerfile
# syntax=docker/dockerfile:1 # to maintain formatting of multiline commands in vscode, add the following to settings.json: # "docker.languageserver.formatter.ignoreMultilineInstructions": true ARG BASE_IMAGE=alpine:3.21 ARG JS_IMAGE=node:20-alpine ARG JS_PLATFORM=linux/amd64 ARG GO_IMAGE=golang:1.24.3-alpine # Default to building locally ARG GO_SRC=go-builder ARG JS_SRC=js-builder # Javascript build stage FROM --platform=${JS_PLATFORM} ${JS_IMAGE} AS js-builder ENV NODE_OPTIONS=--max_old_space_size=8000 WORKDIR /tmp/grafana COPY package.json yarn.lock .yarnrc.yml ./ COPY .yarn .yarn COPY packages packages COPY plugins-bundled plugins-bundled COPY public public RUN apk add --no-cache make build-base python3 RUN yarn install --immutable COPY tsconfig.json .eslintrc .editorconfig .browserslistrc .prettierrc.js ./ COPY public public COPY scripts scripts COPY emails emails ENV NODE_ENV production RUN yarn build # Golang build stage FROM ${GO_IMAGE} AS go-builder ARG COMMIT_SHA="" ARG BUILD_BRANCH="" ARG GO_BUILD_TAGS="oss" ARG WIRE_TAGS="oss" ARG BINGO="true" # Install build dependencies RUN if grep -i -q alpine /etc/issue; then \ apk add --no-cache gcc g++ make git; \ fi WORKDIR /tmp/grafana COPY go.* ./ COPY .bingo .bingo # Include vendored dependencies COPY pkg/util/xorm/go.* pkg/util/xorm/ RUN go mod download RUN if [[ "$BINGO" = "true" ]]; then \ go install github.com/bwplotka/bingo@latest && \ bingo get -v; \ fi COPY embed.go Makefile build.go package.json ./ COPY cue.mod cue.mod COPY kinds kinds COPY local local COPY packages/grafana-schema packages/grafana-schema COPY public/app/plugins public/app/plugins COPY public/api-merged.json public/api-merged.json COPY pkg pkg COPY scripts scripts COPY conf conf COPY .github .github COPY LICENSE ./ ENV COMMIT_SHA=${COMMIT_SHA} ENV BUILD_BRANCH=${BUILD_BRANCH} RUN make build-go GO_BUILD_TAGS=${GO_BUILD_TAGS} WIRE_TAGS=${WIRE_TAGS} # From-tarball build stage FROM ${BASE_IMAGE} AS tgz-builder WORKDIR /tmp/grafana ARG GRAFANA_TGZ="grafana-latest.linux-x64-musl.tar.gz" COPY ${GRAFANA_TGZ} /tmp/grafana.tar.gz # add -v to make tar print every file it extracts RUN tar x -z -f /tmp/grafana.tar.gz --strip-components=1 # helpers for COPY --from FROM ${GO_SRC} AS go-src FROM ${JS_SRC} AS js-src # Final stage FROM ${BASE_IMAGE} LABEL maintainer="Grafana Labs <hello@grafana.com>" ARG GF_UID="472" ARG GF_GID="0" ENV PATH="/usr/share/grafana/bin:$PATH" \ GF_PATHS_CONFIG="/etc/grafana/grafana.ini" \ GF_PATHS_DATA="/var/lib/grafana" \ GF_PATHS_HOME="/usr/share/grafana" \ GF_PATHS_LOGS="/var/log/grafana" \ GF_PATHS_PLUGINS="/var/lib/grafana/plugins" \ GF_PATHS_PROVISIONING="/etc/grafana/provisioning" WORKDIR $GF_PATHS_HOME # Install dependencies RUN if grep -i -q alpine /etc/issue; then \ apk add --no-cache ca-certificates bash curl tzdata musl-utils && \ apk info -vv | sort; \ elif grep -i -q ubuntu /etc/issue; then \ DEBIAN_FRONTEND=noninteractive && \ apt-get update && \ apt-get install -y ca-certificates curl tzdata musl && \ apt-get autoremove -y && \ rm -rf /var/lib/apt/lists/*; \ else \ echo 'ERROR: Unsupported base image' && /bin/false; \ fi # glibc support for alpine x86_64 only # docker run --rm --env STDOUT=1 sgerrand/glibc-builder 2.40 /usr/glibc-compat > glibc-bin-2.40.tar.gz ARG GLIBC_VERSION=2.40 RUN if grep -i -q alpine /etc/issue && [ `arch` = "x86_64" ]; then \ wget -qO- "https://dl.grafana.com/glibc/glibc-bin-$GLIBC_VERSION.tar.gz" | tar zxf - -C / \ usr/glibc-compat/lib/ld-linux-x86-64.so.2 \ usr/glibc-compat/lib/libc.so.6 \ usr/glibc-compat/lib/libdl.so.2 \ usr/glibc-compat/lib/libm.so.6 \ usr/glibc-compat/lib/libpthread.so.0 \ usr/glibc-compat/lib/librt.so.1 \ usr/glibc-compat/lib/libresolv.so.2 && \ mkdir /lib64 && \ ln -s /usr/glibc-compat/lib/ld-linux-x86-64.so.2 /lib64; \ fi COPY --from=go-src /tmp/grafana/conf ./conf RUN if [ ! $(getent group "$GF_GID") ]; then \ if grep -i -q alpine /etc/issue; then \ addgroup -S -g $GF_GID grafana; \ else \ addgroup --system --gid $GF_GID grafana; \ fi; \ fi && \ GF_GID_NAME=$(getent group $GF_GID | cut -d':' -f1) && \ mkdir -p "$GF_PATHS_HOME/.aws" && \ if grep -i -q alpine /etc/issue; then \ adduser -S -u $GF_UID -G "$GF_GID_NAME" grafana; \ else \ adduser --system --uid $GF_UID --ingroup "$GF_GID_NAME" grafana; \ fi && \ mkdir -p "$GF_PATHS_PROVISIONING/datasources" \ "$GF_PATHS_PROVISIONING/dashboards" \ "$GF_PATHS_PROVISIONING/notifiers" \ "$GF_PATHS_PROVISIONING/plugins" \ "$GF_PATHS_PROVISIONING/access-control" \ "$GF_PATHS_PROVISIONING/alerting" \ "$GF_PATHS_LOGS" \ "$GF_PATHS_PLUGINS" \ "$GF_PATHS_DATA" && \ cp conf/sample.ini "$GF_PATHS_CONFIG" && \ cp conf/ldap.toml /etc/grafana/ldap.toml && \ chown -R "grafana:$GF_GID_NAME" "$GF_PATHS_DATA" "$GF_PATHS_HOME/.aws" "$GF_PATHS_LOGS" "$GF_PATHS_PLUGINS" "$GF_PATHS_PROVISIONING" && \ chmod -R 777 "$GF_PATHS_DATA" "$GF_PATHS_HOME/.aws" "$GF_PATHS_LOGS" "$GF_PATHS_PLUGINS" "$GF_PATHS_PROVISIONING" COPY --from=go-src /tmp/grafana/bin/grafana* /tmp/grafana/bin/*/grafana* ./bin/ COPY --from=js-src /tmp/grafana/public ./public COPY --from=go-src /tmp/grafana/LICENSE ./ EXPOSE 3000 ARG RUN_SH=./packaging/docker/run.sh COPY ${RUN_SH} /run.sh USER "$GF_UID" ENTRYPOINT [ "/run.sh" ]
Simpan