Skip to content

Commit c605ff4

Browse files
authored
fix: dockerlint command bug (#109)
1 parent c617dc0 commit c605ff4

File tree

3 files changed

+54
-8
lines changed

3 files changed

+54
-8
lines changed

.circleci/test-deploy.yml

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ version: 2.1
22

33
promotion_requires: &promotion_requires
44
[
5+
dockerlint,
56
hadolint,
67
orb-tools/pack,
78
test-check-command-docker,
@@ -176,6 +177,25 @@ jobs:
176177
ls
177178
exit 1
178179
fi
180+
test-dockerlint:
181+
docker:
182+
- image: cimg/node:17.7.2
183+
parameters:
184+
debug:
185+
type: boolean
186+
default: false
187+
dockerfile:
188+
type: string
189+
default: "test.Dockerfile"
190+
treat-warnings-as-errors:
191+
type: boolean
192+
default: false
193+
steps:
194+
- checkout
195+
- docker/dockerlint:
196+
debug: <<parameters.debug>>
197+
dockerfile: <<parameters.dockerfile>>
198+
treat-warnings-as-errors: <<parameters.treat-warnings-as-errors>>
179199

180200
workflows:
181201
test-deploy:
@@ -186,6 +206,11 @@ workflows:
186206
trusted-registries: docker.io,my-company.com:5000
187207
dockerfiles: test.Dockerfile:test2.Dockerfile
188208
filters: *filters
209+
- test-dockerlint:
210+
name: dockerlint
211+
debug: true
212+
treat-warnings-as-errors: false
213+
filters: *filters
189214
- test-pull:
190215
filters: *filters
191216
- test-create-workspace:

src/commands/dockerlint.yml

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,8 @@ parameters:
2626
steps:
2727
- run:
2828
name: Lint Dockerfile at <<parameters.dockerfile>>
29-
command: |
30-
if [[ $EUID == 0 ]]; then export SUDO=""; else export SUDO="sudo"; fi
31-
32-
npm install -g dockerlint<<^parameters.debug>> > /dev/null 2>&1<</parameters.debug>> || \
33-
$SUDO npm install -g dockerlint<<^parameters.debug>> > /dev/null 2>&1<</parameters.debug>>
34-
35-
dockerlint<<#parameters.treat-warnings-as-errors>> -p<</parameters.treat-warnings-as-errors>> \
36-
<<parameters.dockerfile>>
29+
environment:
30+
PARAM_DEBUG: <<parameters.debug>>
31+
PARAM_TREAT_WARNING_AS_ERRORS: <<parameters.treat-warnings-as-errors>>
32+
PARAM_DOCKERFILE: <<parameters.dockerfile>>
33+
command: <<include(scripts/dockerlint.sh)>>

src/scripts/dockerlint.sh

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
#!/usr/bin/env bash
2+
3+
if [[ $EUID == 0 ]]; then SUDO=""; else SUDO="sudo"; fi
4+
5+
if ! command -v dockerlint &> /dev/null; then
6+
if ! command -v npm &> /dev/null; then
7+
echo "npm is required to install dockerlint.";
8+
echo "Consider running this command with an image that has node available: https://circleci.com/developer/images/image/cimg/node";
9+
echo "Alternatively, use dockerlint's docker image: https://github.com/RedCoolBeans/dockerlint#docker-image."
10+
exit 1
11+
fi
12+
13+
if [ "$PARAM_DEBUG" = true ]; then
14+
npm install -g dockerlint || "$SUDO" npm install -g dockerlint
15+
else
16+
npm install -g dockerlint &> /dev/null || "$SUDO" npm install -g dockerlint &> /dev/null
17+
fi
18+
fi
19+
20+
if [ "$PARAM_TREAT_WARNING_AS_ERRORS" = true ]; then
21+
dockerlint -f "$PARAM_DOCKERFILE" -p
22+
else
23+
dockerlint -f "$PARAM_DOCKERFILE"
24+
fi

0 commit comments

Comments
 (0)