nd002test/on-premise/main/rancher_v2.9.1/source/rancher-2.9.1/package/windows/Dockerfile.agent

53 lines
1.9 KiB
Docker

ARG SERVERCORE_VERSION
ARG ARCH=amd64
ARG VERSION=dev
FROM library/golang:1.22 as build
WORKDIR C:/app
COPY . .
ENV CGO_ENABLED=0
ENV GOOS="windows"
ENV GOARCH="amd64"
ENV TAGS="k8s"
ENV LINKFLAGS="-s -w -extldflags -static"
ENV LDFLAGS="-X main.VERSION={0} $LINKFLAGS -f $VERSION"
RUN go build -tags "${TAGS}" -ldflags "${LDFLAGS}" -o agent.exe ./cmd/agent
FROM mcr.microsoft.com/windows/servercore:${SERVERCORE_VERSION} AS builder
SHELL ["powershell", "-NoLogo", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
# download wins
RUN $URL = 'https://github.com/rancher/wins/releases/download/v0.4.17/wins.exe'; \
\
Write-Host ('Downloading Wins from {0} ...' -f $URL); \
curl.exe -sfL $URL -o c:\wins.exe; \
\
Write-Host 'Complete.'
# download kubelet
RUN $URL = 'https://dl.k8s.io/v1.25.12/kubernetes-client-windows-amd64.tar.gz'; \
Write-Host ('Downloading Kubernetes from {0} ...' -f $URL); \
curl.exe -sfL $URL -o c:\kubernetes.tar.gz; \
\
Write-Host 'Expanding ...'; \
tar.exe -xzvf c:\kubernetes.tar.gz; \
\
Write-Host 'Complete.'
# Need to support loglevel & kube-prompt
# Move for PATH to work
RUN Copy-Item -Path /wins.exe -Destination /Windows/
RUN Copy-Item -Path /kubernetes/client/bin/kubectl.exe -Destination /Windows/
ARG VERSION=${VERSION}
LABEL io.cattle.agent true
ENV DOCKER_API_VERSION 1.24
ENV AGENT_IMAGE rancher/rancher-agent:${VERSION}
ENV SSL_CERT_DIR C:\\etc\\kubernetes\\ssl\\certs
COPY --from=build C:/app/agent.exe /etc/rancher/
COPY --from=build C:/app/package/windows/agent.ps1 /etc/rancher/
COPY --from=build C:/app/package/windows/bootstrap.ps1 /etc/rancher/
COPY --from=build C:/app/package/windows/entrypoint.ps1 /etc/rancher/
COPY --from=build C:/app/package/windows/execute.ps1 /etc/rancher/
COPY --from=build C:/app/package/windows/utils.psm1 /etc/rancher/
ENTRYPOINT ["powershell", "-NoLogo", "-NonInteractive", "-File", "c:/etc/rancher/entrypoint.ps1"]