Skip to content

Commit 9c7cad5

Browse files
committed
build improved
1 parent 934da21 commit 9c7cad5

File tree

4 files changed

+26
-17
lines changed

4 files changed

+26
-17
lines changed

Dockerfile

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
11
FROM debian:10-slim as build
22

3-
ENV USER="casperklein"
4-
ENV NAME="netbox-scanner"
5-
ENV VERSION="2.0.0"
6-
73
ENV PACKAGES="python3 python3-pip nmap"
84

5+
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
6+
97
ENV GIT_USER="lopes"
108
ENV GIT_REPO="netbox-scanner"
119
ENV GIT_COMMIT="af65c252776127d2ab3505862fca7670e299c45c"
1210
ENV GIT_ARCHIVE="https://github.com/$GIT_USER/$GIT_REPO/archive/$GIT_COMMIT.tar.gz"
1311

1412
# Install packages
13+
ENV DEBIAN_FRONTEND=noninteractive
1514
RUN apt-get update \
15+
&& apt-get -y upgrade \
1616
&& apt-get -y install $PACKAGES \
1717
&& rm -rf /var/lib/apt/lists/*
1818

Makefile

+10-6
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,23 @@
11
# all targets are phony (no files to check)
22
.PHONY: build clean scan push
33

4-
USER := $(shell grep -P 'ENV\s+USER=".+?"' Dockerfile | cut -d'"' -f2)
5-
NAME := $(shell grep -P 'ENV\s+NAME=".+?"' Dockerfile | cut -d'"' -f2)
6-
VERSION := $(shell grep -P 'ENV\s+VERSION=".+?"' Dockerfile | cut -d'"' -f2)
4+
SHELL = /bin/bash
5+
6+
IMAGE := $(shell jq -er '.image' < config.json)
7+
TAG := $(shell jq -er '"\(.image):\(.version)"' < config.json)
78

89
build:
910
@./build.sh
1011

1112
clean:
12-
docker rmi $(USER)/$(NAME):$(VERSION)
13+
@echo "Removing Docker images.."
14+
docker rmi "$(TAG)"; \
15+
docker rmi "$(IMAGE):latest"
1316

1417
scan:
1518
@./scan.sh
1619

1720
push:
18-
docker push $(USER)/$(NAME):$(VERSION)
19-
docker push $(USER)/$(NAME):latest
21+
@echo "Pushing image to Docker Hub.."
22+
docker push "$(TAG)"
23+
docker push "$(IMAGE):latest"

build.sh

+6-7
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,14 @@
22

33
set -ueo pipefail
44

5-
USER=$(grep -P 'ENV\s+USER=".+?"' Dockerfile | cut -d'"' -f2)
6-
NAME=$(grep -P 'ENV\s+NAME=".+?"' Dockerfile | cut -d'"' -f2)
7-
VERSION=$(grep -P 'ENV\s+VERSION=".+?"' Dockerfile | cut -d'"' -f2)
8-
TAG="$USER/$NAME:$VERSION"
5+
VERSION=$(jq -er '.version' < config.json)
6+
IMAGE=$(jq -er '.image' < config.json)
7+
TAG=$(jq -er '"\(.image):\(.version)"' < config.json)
98

109
DIR=${0%/*}
1110
cd "$DIR"
1211

13-
echo "Building: $NAME $VERSION"
12+
echo "Building: $TAG"
1413
echo
15-
docker build -t "$TAG" .
16-
docker tag "$TAG" "$USER/$NAME:latest"
14+
docker build -t "$TAG" --build-arg VERSION="$VERSION" .
15+
docker tag "$TAG" "$IMAGE:latest"

config.json

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"user": "casperklein",
3+
"name": "netbox-scanner",
4+
"image": "casperklein/netbox-scanner",
5+
"version": "2.0.0"
6+
}

0 commit comments

Comments
 (0)