build windows images
Signed-off-by: Travis Glenn Hansen <travisghansen@yahoo.com>
This commit is contained in:
parent
46b9b6ca12
commit
b81a47d126
|
|
@ -403,3 +403,42 @@ jobs:
|
||||||
GHCR_PASSWORD: ${{ secrets.GHCR_PASSWORD }}
|
GHCR_PASSWORD: ${{ secrets.GHCR_PASSWORD }}
|
||||||
DOCKER_CLI_EXPERIMENTAL: enabled
|
DOCKER_CLI_EXPERIMENTAL: enabled
|
||||||
DOCKER_BUILD_PLATFORM: linux/amd64,linux/arm64,linux/arm/v7,linux/s390x,linux/ppc64le
|
DOCKER_BUILD_PLATFORM: linux/amd64,linux/arm64,linux/arm/v7,linux/s390x,linux/ppc64le
|
||||||
|
|
||||||
|
build-docker-windows:
|
||||||
|
needs:
|
||||||
|
- csi-sanity-synology-dsm6
|
||||||
|
- csi-sanity-synology-dsm7
|
||||||
|
- csi-sanity-truenas-scale-22_02
|
||||||
|
- csi-sanity-truenas-core-12_0
|
||||||
|
- csi-sanity-truenas-core-13_0
|
||||||
|
- csi-sanity-zfs-generic
|
||||||
|
- csi-sanity-client
|
||||||
|
- csi-sanity-zfs-local
|
||||||
|
- csi-sanity-local-hostpath
|
||||||
|
- csi-sanity-windows-node
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
os: [windows-2019, windows-2022]
|
||||||
|
include:
|
||||||
|
- os: windows-2019
|
||||||
|
base_tag: ltsc2019
|
||||||
|
file: Dockerfile.Windows
|
||||||
|
- os: windows-2022
|
||||||
|
base_tag: ltsc2022
|
||||||
|
file: Dockerfile.Windows
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- name: docker build
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
docker info
|
||||||
|
docker build --pull -f ${{ matrix.file }} --build-arg BASE_TAG=${{ matrix.base_tag }} -t windows:${{ matrix.base_tag }} .
|
||||||
|
docker inspect windows:${{ matrix.base_tag }}
|
||||||
|
docker save windows:${{ matrix.base_tag }} -o windows-${{ matrix.base_tag }}.tar
|
||||||
|
- name: upload image tar
|
||||||
|
uses: actions/upload-artifact@v2
|
||||||
|
with:
|
||||||
|
name: windows-${{ matrix.base_tag }}.tar
|
||||||
|
path: windows-${{ matrix.base_tag }}.tar
|
||||||
|
retention-days: 7
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ RUN apt-get update && apt-get install -y locales && rm -rf /var/lib/apt/lists/*
|
||||||
&& localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8
|
&& localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8
|
||||||
|
|
||||||
ENV LANG=en_US.utf8
|
ENV LANG=en_US.utf8
|
||||||
ENV NODE_VERSION=v16.14.2
|
ENV NODE_VERSION=v16.15.0
|
||||||
ENV NODE_ENV=production
|
ENV NODE_ENV=production
|
||||||
|
|
||||||
# install build deps
|
# install build deps
|
||||||
|
|
@ -73,7 +73,7 @@ COPY --from=build /usr/local/lib/nodejs/bin/node /usr/local/bin/node
|
||||||
# netbase is required by rpcbind/rpcinfo to work properly
|
# netbase is required by rpcbind/rpcinfo to work properly
|
||||||
# /etc/{services,rpc} are required
|
# /etc/{services,rpc} are required
|
||||||
RUN apt-get update && \
|
RUN apt-get update && \
|
||||||
apt-get install -y netbase socat e2fsprogs xfsprogs btrfs-progs fatresize dosfstools nfs-common cifs-utils sudo rsync && \
|
apt-get install -y netbase socat e2fsprogs exfatprogs xfsprogs btrfs-progs fatresize dosfstools ntfs-3g nfs-common cifs-utils fdisk gdisk cloud-guest-utils sudo rsync && \
|
||||||
rm -rf /var/lib/apt/lists/*
|
rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
# controller requirements
|
# controller requirements
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,73 @@
|
||||||
|
# docker build --build-arg BASE_TAG=ltsc2019 -t foobar -f Dockerfile.Windows .
|
||||||
|
# docker run --rm -ti --entrypoint powershell foobar
|
||||||
|
|
||||||
|
|
||||||
|
# mcr.microsoft.com/windows/servercore:ltsc2019
|
||||||
|
# mcr.microsoft.com/windows/nanoserver:1809
|
||||||
|
|
||||||
|
ARG BASE_TAG
|
||||||
|
|
||||||
|
FROM mcr.microsoft.com/windows/servercore:${BASE_TAG} as build
|
||||||
|
|
||||||
|
SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
|
||||||
|
|
||||||
|
#ENV GPG_VERSION 4.0.2
|
||||||
|
ENV GPG_VERSION 2.3.4
|
||||||
|
|
||||||
|
RUN Invoke-WebRequest $('https://files.gpg4win.org/gpg4win-vanilla-{0}.exe' -f $env:GPG_VERSION) -OutFile 'gpg4win.exe' -UseBasicParsing ; \
|
||||||
|
Start-Process .\gpg4win.exe -ArgumentList '/S' -NoNewWindow -Wait
|
||||||
|
|
||||||
|
# https://github.com/nodejs/node#release-keys
|
||||||
|
RUN @( \
|
||||||
|
'4ED778F539E3634C779C87C6D7062848A1AB005C', \
|
||||||
|
'141F07595B7B3FFE74309A937405533BE57C7D57', \
|
||||||
|
'94AE36675C464D64BAFA68DD7434390BDBE9B9C5', \
|
||||||
|
'74F12602B6F1C4E913FAA37AD3A89613643B6201', \
|
||||||
|
'71DCFD284A79C3B38668286BC97EC7A07EDE3FC1', \
|
||||||
|
'61FC681DFB92A079F1685E77973F295594EC4689', \
|
||||||
|
'8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600', \
|
||||||
|
'C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8', \
|
||||||
|
'C82FA3AE1CBEDC6BE46B9360C43CEC45C17AB93C', \
|
||||||
|
'DD8F2338BAE7501E3DD5AC78C273792F7D83545D', \
|
||||||
|
'A48C2BEE680E841632CD4E44F07496B3EB3C1762', \
|
||||||
|
'108F52B48DB57BB0CC439B2997B01419BD92F80A', \
|
||||||
|
'B9E2F5981AA6E0CD28160D9FF13993A75599653C' \
|
||||||
|
) | foreach { \
|
||||||
|
gpg --keyserver hkps://keys.openpgp.org --recv-keys $_ ; \
|
||||||
|
}
|
||||||
|
|
||||||
|
ENV NODE_VERSION 16.15.0
|
||||||
|
|
||||||
|
RUN Invoke-WebRequest $('https://nodejs.org/dist/v{0}/SHASUMS256.txt.asc' -f $env:NODE_VERSION) -OutFile 'SHASUMS256.txt.asc' -UseBasicParsing ;
|
||||||
|
#RUN Invoke-WebRequest $('https://nodejs.org/dist/v{0}/SHASUMS256.txt.asc' -f $env:NODE_VERSION) -OutFile 'SHASUMS256.txt.asc' -UseBasicParsing ; \
|
||||||
|
# gpg --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc
|
||||||
|
#gpg --verify SHASUMS256.txt.sig SHASUMS256.txt
|
||||||
|
|
||||||
|
RUN Invoke-WebRequest $('https://nodejs.org/dist/v{0}/node-v{0}-win-x64.zip' -f $env:NODE_VERSION) -OutFile 'node.zip' -UseBasicParsing ; \
|
||||||
|
$sum = $(cat SHASUMS256.txt.asc | sls $(' node-v{0}-win-x64.zip' -f $env:NODE_VERSION)) -Split ' ' ; \
|
||||||
|
if ((Get-FileHash node.zip -Algorithm sha256).Hash -ne $sum[0]) { Write-Error 'SHA256 mismatch' } ; \
|
||||||
|
Expand-Archive node.zip -DestinationPath C:\ ; \
|
||||||
|
Rename-Item -Path $('C:\node-v{0}-win-x64' -f $env:NODE_VERSION) -NewName 'C:\nodejs'
|
||||||
|
|
||||||
|
#RUN setx /M PATH "%PATH%;C:\nodejs"
|
||||||
|
RUN setx /M PATH $(${Env:PATH} + \";C:\nodejs\")
|
||||||
|
|
||||||
|
RUN node --version; npm --version;
|
||||||
|
|
||||||
|
RUN mkdir /app
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
COPY package*.json ./
|
||||||
|
RUN npm install --only=production; ls /
|
||||||
|
COPY . .
|
||||||
|
|
||||||
|
FROM mcr.microsoft.com/windows/servercore:${BASE_TAG}
|
||||||
|
|
||||||
|
LABEL org.opencontainers.image.source https://github.com/democratic-csi/democratic-csi
|
||||||
|
|
||||||
|
COPY --from=build /nodejs/node.exe /Windows/system32
|
||||||
|
COPY --from=build /app /app
|
||||||
|
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
ENTRYPOINT [ "node.exe", "--expose-gc", "bin/democratic-csi" ]
|
||||||
Loading…
Reference in New Issue