-
Notifications
You must be signed in to change notification settings - Fork 7
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add jetbrains/teamcity-agent:2021.2-linux; update dotnet 3.1.19
- Loading branch information
Tho Ho
committed
Oct 27, 2021
1 parent
07b7463
commit d097aa7
Showing
3 changed files
with
132 additions
and
3 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,57 @@ | ||
ARG DOTNET_SDK_VERSION5=5.0.402 | ||
ARG DOTNET_SDK_VERSION6=6.0.100-rc.2 | ||
ARG MINVER_IMAGE_TAG=2.5.0 | ||
ARG MINVER_IMAGE=teslaconsulting/minver-cli:$MINVER_IMAGE_TAG | ||
ARG TEAMCITYAGENT_IMAGE_TAG=2021.2-linux | ||
|
||
FROM mcr.microsoft.com/dotnet/sdk:${DOTNET_SDK_VERSION6}-focal AS dotnetsdk6 | ||
FROM mcr.microsoft.com/dotnet/sdk:${DOTNET_SDK_VERSION5}-focal AS dotnetsdk5 | ||
FROM $MINVER_IMAGE AS minver | ||
|
||
FROM scratch AS build | ||
WORKDIR /usr/share | ||
COPY --from=dotnetsdk5 /usr/share/dotnet /usr/share/dotnet | ||
COPY --from=dotnetsdk6 /usr/share/dotnet /usr/share/dotnet | ||
COPY --from=dotnetsdk5 /usr/share/powershell /usr/share/powershell | ||
COPY --from=minver /usr/share/minver-cli /usr/share/minver-cli | ||
|
||
FROM jetbrains/teamcity-agent:${TEAMCITYAGENT_IMAGE_TAG} AS final | ||
|
||
USER root | ||
|
||
ARG DOTNET_VERSION31=3.1.19 | ||
ARG DOTNET_SDK_VERSION31=3.1.413 | ||
ARG DOTNET_VERSION6=6.0.0-rc.2.21480.5 | ||
ARG DOTNET_VERSION=5.0.11 | ||
ARG DOTNET_SDK_VERSION6 | ||
ARG DOTNET_SDK_VERSION5 | ||
ARG POWERSHELL_VERSION=7.1.4 | ||
ARG MINVER_IMAGE_TAG | ||
# Install PowerShell global tool | ||
# Install minver Console global tool | ||
ENV DOTNET_VERSION31=${DOTNET_VERSION31} \ | ||
ASPNET_VERSION31=${DOTNET_VERSION31} \ | ||
DOTNET_SDK_VERSION31=${DOTNET_SDK_VERSION31} \ | ||
DOTNET_VERSION6=${DOTNET_VERSION6} \ | ||
DOTNET_VERSION=${DOTNET_VERSION} \ | ||
ASPNET_VERSION=${DOTNET_VERSION} \ | ||
DOTNET_SDK_VERSION6=${DOTNET_SDK_VERSION6} \ | ||
DOTNET_SDK_VERSION=${DOTNET_SDK_VERSION5} \ | ||
POWERSHELL_VERSION=${POWERSHELL_VERSION} \ | ||
POWERSHELL_DISTRIBUTION_CHANNEL=PSDocker-DotnetSDK-Ubuntu-20.04 \ | ||
DOTNET_MINVER_VERSION=$MINVER_IMAGE_TAG | ||
|
||
COPY --from=build /usr/share /usr/share | ||
|
||
RUN ln -s /usr/share/powershell/pwsh /usr/bin/pwsh \ | ||
&& chmod 755 /usr/share/powershell/pwsh \ | ||
&& ln -s /usr/share/minver-cli/minver /usr/bin/minver \ | ||
&& chmod 755 /usr/share/minver-cli/minver \ | ||
# Install module Pester - for root user | ||
&& pwsh -Command "Install-Module -Name Pester -Scope AllUsers -Force" \ | ||
&& dotnet nuget locals all --clear | ||
|
||
USER buildagent | ||
|
||
# ENV PATH="$PATH:/home/buildagent/.dotnet/tools" | ||
# RUN dotnet tool install --global minver-cli --version $DOTNET_MINVER_VERSION |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,72 @@ | ||
#!/bin/bash | ||
|
||
IMAGE_NAME1="${DOCKER_REPO}:${SOURCE_COMMIT:0:7}" | ||
IMAGE_LATEST="${DOCKER_REPO}:latest" | ||
|
||
cat <<EOF | ||
Current Dir: ${PWD} | ||
SOURCE_BRANCH: ${SOURCE_BRANCH} | ||
SOURCE_COMMIT: ${SOURCE_COMMIT} | ||
COMMIT_MSG: ${COMMIT_MSG} | ||
DOCKER_REPO: ${DOCKER_REPO} | ||
DOCKERFILE_PATH: ${DOCKERFILE_PATH} | ||
DOCKER_TAG: ${DOCKER_TAG} | ||
IMAGE_NAME: ${IMAGE_NAME} | ||
IMAGE_LATEST: ${IMAGE_LATEST} | ||
IMAGE_NAME1: ${IMAGE_NAME1} | ||
EOF | ||
|
||
DOCKER_BUID="DOCKER_BUILDKIT=1 docker build . -f $DOCKERFILE_PATH -t $IMAGE_NAME" | ||
|
||
if [[ -n "${MINVER_IMAGE}" ]]; then | ||
echo "-- MINVER: ${MINVER_IMAGE}" | ||
DOCKER_BUID="$DOCKER_BUID --build-arg MINVER_IMAGE=$MINVER_IMAGE" | ||
fi | ||
|
||
if [[ "${SOURCE_BRANCH}" -eq "main" ]]; then | ||
unset IMAGE_LATEST | ||
unset IMAGE_NAME3 | ||
echo "-- Commit: ${IMAGE_NAME1}" | ||
DOCKER_BUID="$DOCKER_BUID -t $IMAGE_NAME1" | ||
else | ||
unset IMAGE_NAME1 | ||
echo "-- Latest: ${IMAGE_LATEST}" | ||
DOCKER_BUID="$DOCKER_BUID -t $IMAGE_LATEST" | ||
|
||
if [[ -n "${REPO2}" ]]; then | ||
IMAGE_NAME2="${REPO2}:${DOCKER_TAG}" | ||
DOCKER_BUID="$DOCKER_BUID -t $IMAGE_NAME2" | ||
fi | ||
|
||
if [[ -n "${IMAGE_NAME3}" ]]; then | ||
DOCKER_BUID="$DOCKER_BUID -t $IMAGE_NAME3" | ||
fi | ||
fi | ||
|
||
echo "Docker build=> ${DOCKER_BUID}" | ||
eval $DOCKER_BUID | ||
|
||
ret_val=$? | ||
if [[ ${ret_val} -eq 0 ]]; then | ||
if [[ -n "${IMAGE_NAME1}" ]]; then | ||
echo "Pushing=> ${IMAGE_NAME1}" | ||
docker push ${IMAGE_NAME1} | ||
fi | ||
|
||
if [[ -n "${IMAGE_LATEST}" ]]; then | ||
echo "Pushing=> ${IMAGE_LATEST}" | ||
docker push ${IMAGE_LATEST} | ||
fi | ||
|
||
if [[ -n "${IMAGE_NAME2}" ]]; then | ||
echo "Pushing=> ${IMAGE_NAME2}" | ||
docker push ${IMAGE_NAME2} | ||
fi | ||
|
||
if [[ -n "${IMAGE_NAME3}" ]]; then | ||
echo "Pushing=> ${IMAGE_NAME3}" | ||
docker push ${IMAGE_NAME3} | ||
fi | ||
else | ||
exit ret_val | ||
fi |