generated from steadybit/extension-scaffold
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDockerfile
94 lines (74 loc) · 2.53 KB
/
Dockerfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
# syntax=docker/dockerfile:1
##
## Build
##
FROM --platform=$BUILDPLATFORM golang:1.24-bullseye AS build
ARG TARGETOS
ARG TARGETARCH
ARG NAME
ARG VERSION
ARG REVISION
ARG ADDITIONAL_BUILD_PARAMS
ARG SKIP_LICENSES_REPORT=false
ARG VERSION=unknown
ARG REVISION=unknown
WORKDIR /app
RUN apt-get update && \
apt-get upgrade -y && \
apt-get install -y --no-install-recommends build-essential
COPY go.mod ./
COPY go.sum ./
RUN go mod download
COPY . .
RUN GOOS=$TARGETOS GOARCH=$TARGETARCH go build \
-ldflags="\
-X 'github.com/steadybit/extension-kit/extbuild.ExtensionName=${NAME}' \
-X 'github.com/steadybit/extension-kit/extbuild.Version=${VERSION}' \
-X 'github.com/steadybit/extension-kit/extbuild.Revision=${REVISION}'" \
-o ./extension \
${ADDITIONAL_BUILD_PARAMS}
RUN make licenses-report
##
## Runtime
##
FROM azul/zulu-openjdk-debian:23
ARG VERSION=unknown
ARG REVISION=unknown
LABEL "steadybit.com.discovery-disabled"="true"
LABEL "version"="${VERSION}"
LABEL "revision"="${REVISION}"
RUN echo "$VERSION" > /version.txt && echo "$REVISION" > /revision.txt
ENV GATLING_VERSION=3.10.5
ENV GATLING_HOME=/opt/gatling
ENV GATLING_BIN=${GATLING_HOME}/bin
ENV PATH=${GATLING_BIN}:$PATH
RUN apt-get -qq update && \
apt-get -qq -y upgrade && \
apt-get -qq -y --no-install-recommends install procps unzip zip && \
rm -rf /var/lib/apt/lists/*
# Installing jmeter
ADD https://repo1.maven.org/maven2/io/gatling/highcharts/gatling-charts-highcharts-bundle/${GATLING_VERSION}/gatling-charts-highcharts-bundle-${GATLING_VERSION}-bundle.zip /tmp/
RUN mkdir -p /opt/ \
&& cd /tmp/ \
&& unzip -d /opt gatling-charts-highcharts-bundle-${GATLING_VERSION}-bundle.zip \
&& mv /opt/gatling-charts-highcharts-bundle-${GATLING_VERSION} ${GATLING_HOME} \
&& rm gatling-charts-highcharts-bundle-${GATLING_VERSION}-bundle.zip \
&& rm --recursive --force ${GATLING_HOME}/user-files/simulations/computerdatabase \
&& rm ${GATLING_HOME}/user-files/resources/search.csv
# Setup user
ARG USERNAME=steadybit
ARG USER_UID=10000
ARG USER_GID=$USER_UID
RUN groupadd --gid $USER_GID $USERNAME \
&& useradd --uid $USER_UID --gid $USER_GID -m $USERNAME \
&& chown -R steadybit /opt/gatling
USER $USER_UID
RUN mkdir -p /tmp/.java/.systemPrefs /tmp/.java/.userPrefs && \
chmod -R 755 /tmp/.java
ENV JAVA_OPTS="-Djava.util.prefs.systemRoot=/tmp/.java -Djava.util.prefs.userRoot=/tmp/.java/.userPrefs"
WORKDIR /
COPY --from=build /app/extension /extension
COPY --from=build /app/licenses /licenses
EXPOSE 8087
EXPOSE 8088
ENTRYPOINT ["/extension"]