mirror of https://github.com/fluxcd/flagger.git
				
				
				
			
		
			
				
	
	
		
			70 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Docker
		
	
	
	
			
		
		
	
	
			70 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Docker
		
	
	
	
FROM alpine:3.11 as build
 | 
						|
 | 
						|
RUN apk --no-cache add alpine-sdk perl curl
 | 
						|
 | 
						|
RUN curl -sSLo hey "https://storage.googleapis.com/hey-release/hey_linux_amd64" && \
 | 
						|
chmod +x hey && mv hey /usr/local/bin/hey
 | 
						|
 | 
						|
RUN HELM2_VERSION=2.16.8 && \
 | 
						|
curl -sSL "https://get.helm.sh/helm-v${HELM2_VERSION}-linux-amd64.tar.gz" | tar xvz && \
 | 
						|
chmod +x linux-amd64/helm && mv linux-amd64/helm /usr/local/bin/helm && \
 | 
						|
chmod +x linux-amd64/tiller && mv linux-amd64/tiller /usr/local/bin/tiller
 | 
						|
 | 
						|
RUN HELM3_VERSION=3.2.3 && \
 | 
						|
curl -sSL "https://get.helm.sh/helm-v${HELM3_VERSION}-linux-amd64.tar.gz" | tar xvz && \
 | 
						|
chmod +x linux-amd64/helm && mv linux-amd64/helm /usr/local/bin/helmv3
 | 
						|
 | 
						|
RUN GRPC_HEALTH_PROBE_VERSION=v0.3.1 && \
 | 
						|
wget -qO /usr/local/bin/grpc_health_probe https://github.com/grpc-ecosystem/grpc-health-probe/releases/download/${GRPC_HEALTH_PROBE_VERSION}/grpc_health_probe-linux-amd64 && \
 | 
						|
chmod +x /usr/local/bin/grpc_health_probe
 | 
						|
 | 
						|
RUN GHZ_VERSION=0.39.0 && \
 | 
						|
curl -sSL "https://github.com/bojand/ghz/releases/download/v${GHZ_VERSION}/ghz_${GHZ_VERSION}_Linux_x86_64.tar.gz" | tar xz -C /tmp && \
 | 
						|
mv /tmp/ghz /usr/local/bin && chmod +x /usr/local/bin/ghz
 | 
						|
 | 
						|
RUN HELM_TILLER_VERSION=0.9.3 && \
 | 
						|
curl -sSL "https://github.com/rimusz/helm-tiller/archive/v${HELM_TILLER_VERSION}.tar.gz" | tar xz -C /tmp && \
 | 
						|
mv /tmp/helm-tiller-${HELM_TILLER_VERSION} /tmp/helm-tiller
 | 
						|
 | 
						|
RUN WRK_VERSION=4.0.2 && \
 | 
						|
cd /tmp && git clone -b ${WRK_VERSION} https://github.com/wg/wrk
 | 
						|
RUN cd /tmp/wrk && make
 | 
						|
 | 
						|
FROM bash:5.0
 | 
						|
 | 
						|
RUN addgroup -S app && \
 | 
						|
adduser -S -g app app && \
 | 
						|
apk --no-cache add ca-certificates curl jq libgcc
 | 
						|
 | 
						|
WORKDIR /home/app
 | 
						|
 | 
						|
COPY --from=bats/bats:v1.1.0 /opt/bats/ /opt/bats/
 | 
						|
RUN ln -s /opt/bats/bin/bats /usr/local/bin/
 | 
						|
 | 
						|
COPY --from=build /usr/local/bin/hey /usr/local/bin/
 | 
						|
COPY --from=build /tmp/wrk/wrk /usr/local/bin/
 | 
						|
COPY --from=build /usr/local/bin/helm /usr/local/bin/
 | 
						|
COPY --from=build /usr/local/bin/tiller /usr/local/bin/
 | 
						|
COPY --from=build /usr/local/bin/ghz /usr/local/bin/
 | 
						|
COPY --from=build /usr/local/bin/helmv3 /usr/local/bin/
 | 
						|
COPY --from=build /usr/local/bin/grpc_health_probe /usr/local/bin/
 | 
						|
COPY --from=build /tmp/helm-tiller /tmp/helm-tiller
 | 
						|
 | 
						|
ADD https://raw.githubusercontent.com/grpc/grpc-proto/master/grpc/health/v1/health.proto /tmp/ghz/health.proto
 | 
						|
 | 
						|
COPY ./bin/loadtester .
 | 
						|
 | 
						|
RUN chown -R app:app ./
 | 
						|
RUN chown -R app:app /tmp/ghz
 | 
						|
 | 
						|
USER app
 | 
						|
 | 
						|
# test load generator tools
 | 
						|
RUN hey -n 1 -c 1 https://flagger.app > /dev/null && echo $? | grep 0
 | 
						|
RUN wrk -d 1s -c 1 -t 1 https://flagger.app > /dev/null && echo $? | grep 0
 | 
						|
 | 
						|
# install Helm v2 plugins
 | 
						|
RUN helm init --client-only && helm plugin install /tmp/helm-tiller
 | 
						|
 | 
						|
ENTRYPOINT ["./loadtester"]
 |