feat: add hadolint Dockerfile linting
All checks were successful
continuous-integration/drone/push Build is passing

commit 5acb4e2ba773d312c6b5159011ef415af53f8f71
Author: surtur <a_mirre@utb.cz>
Date:   Tue Jan 26 16:28:10 2021 +0100

    chore: rework ci pipeline logic

    * run {debug,release} builds after clone, then lint Dockerfile{,.dev}
      and finally run kaniko builds ({debug,release}) in parallel

commit 1e16f72eb4957b14c7fb316282d4cefae0811871
Author: surtur <a_mirre@utb.cz>
Date:   Tue Jan 26 16:19:50 2021 +0100

    feat: add hadolint Dockerfile linting

    to conform the linter and best practices:
    * add a FROM alias
    * quote variables (even though they're single-word and known in
      advance, might actually change it to ignore the warning)
This commit is contained in:
surtur 2021-01-26 17:35:44 +01:00
parent 4c78f0e417
commit bb189cac7f
Signed by: wanderer
GPG Key ID: 19CE1EC1D9E0486D
4 changed files with 25 additions and 4 deletions

View File

@ -18,6 +18,7 @@ steps:
- name: debug
pull: always
image: mcr.microsoft.com/dotnet/core/sdk:3.1-alpine
depends_on: [clone]
commands:
- dotnet restore
- dotnet build .
@ -25,13 +26,29 @@ steps:
- name: release
pull: always
image: mcr.microsoft.com/dotnet/core/sdk:3.1-alpine
depends_on: [clone]
commands:
- dotnet restore
- dotnet publish -c Release -o out
- name: hadolint release
image: hadolint/hadolint:latest
depends_on: [clone]
commands:
- hadolint --version
- hadolint Dockerfile
- name: hadolint debug
image: hadolint/hadolint:latest
depends_on: [clone]
commands:
- hadolint --version
- hadolint Dockerfile.dev
- name: docker-release-build
pull: always
image: ghcr.io/finitum/drone-kaniko:0.7.0
depends_on: [release, hadolint release]
settings:
dockerfile: Dockerfile
context: .
@ -39,6 +56,7 @@ steps:
- name: docker-debug-build
pull: always
image: ghcr.io/finitum/drone-kaniko:0.7.0
depends_on: [debug, hadolint debug]
settings:
dockerfile: Dockerfile.dev
context: .

3
.hadolint.yaml Normal file
View File

@ -0,0 +1,3 @@
ignored:
# ad "SC2039 In POSIX sh, UID is undefined." - it's a var defined by us
- SC2039

View File

@ -1,4 +1,4 @@
FROM mcr.microsoft.com/dotnet/core/sdk:3.1-alpine
FROM mcr.microsoft.com/dotnet/core/sdk:3.1-alpine AS base
ENV UID 1000
ENV GID 1000
ENV UNAME unpriv
@ -13,8 +13,8 @@ RUN dotnet publish -c Release -o bin/out
FROM mcr.microsoft.com/dotnet/aspnet:3.1
WORKDIR /App
COPY --from=0 /src/bin/out/ .
RUN chown -R ${UID}:${GID} ./
COPY --from=base /src/bin/out/ .
RUN chown -R "${UID}":"${GID}" ./
USER ${UNAME}
ENV ASPNETCORE_ENVIRONMENT=Release
ENTRYPOINT ["dotnet", "pwt-0x01-ng.dll"]

View File

@ -10,7 +10,7 @@ RUN dotnet restore
COPY . ./
RUN dotnet build -c Debug -o bin/out
RUN chown -R ${UID}:${GID} ./ /root/
RUN chown -R "${UID}":"${GID}" ./ /root/
USER ${UNAME}
ENV ASPNETCORE_ENVIRONMENT=Development