From cb1f376ddb24f8bad0f47c3efe65d6270c5eadb5 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Thu, 2 Mar 2023 19:35:13 +0100 Subject: [PATCH] ci: test build Dockerfile --- .github/workflows/ci.yml | 90 ++++++++++++++++++++++++++++++++++++++++ test/Dockerfile | 9 ++++ test/hello.txt | 22 ++++++++++ test/win.Dockerfile | 3 ++ 4 files changed, 124 insertions(+) create mode 100644 test/Dockerfile create mode 100644 test/hello.txt create mode 100644 test/win.Dockerfile diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0c5f41a..23e0d20 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -74,3 +74,93 @@ jobs: name: Check context run: | docker context inspect foo + + build-linux: + runs-on: ubuntu-latest + services: + registry: + image: registry:2 + ports: + - 5000:5000 + steps: + - + name: Checkout + uses: actions/checkout@v3 + - + name: Set up Docker + uses: ./ + with: + version: v23.0.1 + - + name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + with: + driver: docker + driver-opts: network=host + - + name: Build and push + uses: docker/build-push-action@v4 + with: + context: ./test + push: true + tags: | + localhost:5000/name/app:latest + - + name: Inspect + run: | + docker buildx imagetools inspect localhost:5000/name/app:latest --format '{{json .}}' + + build-macos: + runs-on: macos-latest + steps: + - + name: Checkout + uses: actions/checkout@v3 + - + name: Set up Docker + uses: ./ + with: + version: v23.0.1 + - + name: Start registry + run: | + docker run -d -p 5000:5000 --restart=always --name registry registry:2 + - + name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + with: + driver: docker + driver-opts: network=host + - + name: Build and push + uses: docker/build-push-action@v4 + with: + context: ./test + push: true + tags: | + localhost:5000/name/app:latest + - + name: Inspect + run: | + docker buildx imagetools inspect localhost:5000/name/app:latest --format '{{json .}}' + + build-windows: + runs-on: windows-latest + steps: + - + name: Checkout + uses: actions/checkout@v3 + - + name: Set up Docker + uses: ./ + with: + version: v23.0.1 + - + name: Build + working-directory: ./test + run: | + docker build -f win.Dockerfile -t test . + - + name: Inspect + run: | + docker image inspect test diff --git a/test/Dockerfile b/test/Dockerfile new file mode 100644 index 0000000..675c462 --- /dev/null +++ b/test/Dockerfile @@ -0,0 +1,9 @@ +# syntax=docker/dockerfile:1 + +FROM --platform=$BUILDPLATFORM golang:alpine AS build +ARG TARGETPLATFORM +ARG BUILDPLATFORM +RUN echo "I am running on $BUILDPLATFORM, building for $TARGETPLATFORM" > /log + +FROM alpine +COPY --from=build /log /log diff --git a/test/hello.txt b/test/hello.txt new file mode 100644 index 0000000..cac89c9 --- /dev/null +++ b/test/hello.txt @@ -0,0 +1,22 @@ + +Hello from Docker! +This message shows that your installation appears to be working correctly. + +To generate this message, Docker took the following steps: + 1. The Docker client contacted the Docker daemon. + 2. The Docker daemon pulled the "hello-world" image from the Docker Hub. + (windows-amd64, nanoserver-1809) + 3. The Docker daemon created a new container from that image which runs the + executable that produces the output you are currently reading. + 4. The Docker daemon streamed that output to the Docker client, which sent it + to your terminal. + +To try something more ambitious, you can run a Windows Server container with: + PS C:\> docker run -it mcr.microsoft.com/windows/servercore:ltsc2019 powershell + +Share images, automate workflows, and more with a free Docker ID: + https://hub.docker.com/ + +For more examples and ideas, visit: + https://docs.docker.com/get-started/ + diff --git a/test/win.Dockerfile b/test/win.Dockerfile new file mode 100644 index 0000000..4c3525e --- /dev/null +++ b/test/win.Dockerfile @@ -0,0 +1,3 @@ +FROM mcr.microsoft.com/windows/nanoserver:1809 +COPY hello.txt C: +CMD ["cmd", "/C", "type C:\\hello.txt"]