diff options
| author | Max Resnick <max@ofmax.li> | 2020-04-10 22:51:15 -0700 |
|---|---|---|
| committer | Max Resnick <max@ofmax.li> | 2020-04-10 23:12:57 -0700 |
| commit | 699c1344fcc57ceab2e84c49311e17047b30c681 (patch) | |
| tree | 30f038edd2a86db932259dd81de483ee039e53d5 | |
| parent | 54fbd4333809568e19da1cd3697f7a1e08aa51b3 (diff) | |
| download | grumpy-containers-699c1344fcc57ceab2e84c49311e17047b30c681.tar.gz | |
refactor make, change base
| -rw-r--r-- | Makefile | 84 | ||||
| -rw-r--r-- | src/base/Dockerfile | 19 | ||||
| -rw-r--r-- | src/base/VERSION | 2 | ||||
| -rw-r--r-- | src/base/targets/buster-builder | 0 | ||||
| -rw-r--r-- | src/base/targets/buster-slim | 0 | ||||
| -rw-r--r-- | src/base/targets/sid-slim | 0 | ||||
| -rw-r--r-- | src/git-snapshot/Dockerfile | 2 | ||||
| -rw-r--r-- | src/gitolite/Dockerfile | 2 | ||||
| -rw-r--r-- | src/helm-tools/Dockerfile | 2 | ||||
| -rw-r--r-- | src/pelican/Dockerfile | 2 | ||||
| -rw-r--r-- | src/znc/Dockerfile | 2 |
11 files changed, 60 insertions, 55 deletions
@@ -1,56 +1,46 @@ #!/usr/bin/env make override CONTAINERS = $(patsubst src/%,%,$(wildcard src/*)) +override TARGETS = $(patsubst src/%,%,$(subst targets/,,$(wildcard src/**/targets/*))) + +override PUSH_TARGETS = $(addprefix push/,$(TARGETS)) +override BUILD_TARGETS = $(addprefix build/,$(TARGETS)) + +override BUILD_CONTAINERS = $(addprefix build/,$(CONTAINERS)) +override PUSH_CONTAINERS = $(addprefix push/,$(CONTAINERS)) + override REGISTRY_URL = registry.gitlab.com/grumps/grumpy-containers TAG = $(shell cat src/$(@F)/VERSION) +BASE_NAME = $(notdir $(@D)) -.PHONY: all clean - -all: $(CONTAINERS) - echo "$(CONTAINERS) " - @echo "completed" - -clean: - rm -rf build tag release - -build/base: - docker build -t $(@F):$(TAG) -f src/$(@F)/Dockerfile src/$(@F) - docker build -t $(@F):$(TAG)-sid-slim --build-arg VERSION=sid-slim -f src/$(@F)/Dockerfile src/$(@F) - mkdir -p build - echo $(TAG) >> build/$(@F) - @echo "$(@F) has been built" - -build/%: - docker build -t $(@F):$(TAG) -f src/$(@F)/Dockerfile src/$(@F) - mkdir -p build - echo $(TAG) >> build/$(@F) - @echo "$(@F) has been built" - -tag/base: - docker tag $(@F):$(TAG) $(REGISTRY_URL)/$(@F):$(TAG) - docker tag $(@F):$(TAG)-sid-slim $(REGISTRY_URL)/$(@F):$(TAG)-sid-slim - mkdir -p tag - echo $(TAG) >> tag/$(@F) - @echo "$(@F) has been tagged" - -tag/%: - docker tag $(@F):$(TAG) $(REGISTRY_URL)/$(@F):$(TAG) - mkdir -p tag - echo $(TAG) >> tag/$(@F) - @echo "$(@F) has been tagged" - -release/base: - docker push $(REGISTRY_URL)/$(@F):$(TAG) - docker push $(REGISTRY_URL)/$(@F):$(TAG)-sid-slim - mkdir -p release - echo $(TAG) >> release/$(@F) - @echo "$(@F) has been pushed" +all: $(BUILD_CONTAINERS) $(BUILD_TARGETS) $(PUSH_CONTAINERS) $(PUSH_TARGETS) + +$(BUILD_CONTAINERS): TAG = $(shell cat src/$(@F)/VERSION) +$(BUILD_CONTAINERS): + docker build -t $(REGISTRY_URL)/$(@F):$(TAG) -f src/$(@F)/Dockerfile src/$(@F) + @echo "$(@F)/$(TAG) has been built" -release/%: +$(PUSH_CONTAINERS): TAG = $(shell cat src/$(@F)/VERSION) +$(PUSH_CONTAINERS): docker push $(REGISTRY_URL)/$(@F):$(TAG) - mkdir -p release - echo $(TAG) >> release/$(@F) - @echo "$(@F) has been pushed" + @echo "$(@F)/$(TAG) has been pushed" + +$(BUILD_TARGETS): TAG = $(shell cat src/$(BASE_NAME)/VERSION) +$(BUILD_TARGETS): + docker build --target $(@F) -t $(REGISTRY_URL)/$(BASE_NAME):$(TAG)-$(@F) -f src/$(BASE_NAME)/Dockerfile src/$(BASE_NAME) + @echo "$(BASE_NAME)/$(@F)/$(TAG) has been built" + +$(PUSH_TARGETS): TAG = $(shell cat src/$(BASE_NAME)/VERSION) +$(PUSH_TARGETS): + docker push $(REGISTRY_URL)/$(BASE_NAME):$(TAG)-$(@F) + @echo "$(BASE_NAME)/$(@F)/$(TAG) has been pushed" + + +build: $(BUILD_CONTAINERS) $(BUILD_TARGETS) + @echo "completed builds" + +push: $(PUSH_CONTAINERS) $(PUSH_TARGETS) + @echo "pushed all containers" -%: build/% tag/% release/% - @echo "$(@F) has been completed" +%: build/% push/% + echo "completed $%" diff --git a/src/base/Dockerfile b/src/base/Dockerfile index 30366a7..5a5b365 100644 --- a/src/base/Dockerfile +++ b/src/base/Dockerfile @@ -1,5 +1,4 @@ -ARG VERSION=buster-slim -FROM debian:${VERSION} +FROM debian:buster-slim as buster-slim ENV DEBIAN_FRONTEND=noninteractive RUN useradd -s /usr/sbin/nologin \ --create-home \ @@ -7,3 +6,19 @@ RUN useradd -s /usr/sbin/nologin \ app COPY bin/install_deb /usr/local/bin/install_deb WORKDIR /opt/app +FROM debian:sid-slim as sid-slim +ENV DEBIAN_FRONTEND=noninteractive +RUN useradd -s /usr/sbin/nologin \ + --create-home \ + --home-dir /opt/app \ + app +COPY bin/install_deb /usr/local/bin/install_deb +WORKDIR /opt/app +FROM buster-slim as buster-builder +ENV DEBIAN_FRONTEND=noninteractive +COPY bin/install_deb /usr/local/bin/install_deb +RUN install_deb curl +WORKDIR /opt/app +FROM debian:buster-slim as finale +ENV DEBIAN_FRONTEND=noninteractive +COPY bin/install_deb /usr/local/bin/install_deb diff --git a/src/base/VERSION b/src/base/VERSION index a3dce6c..f9cece5 100644 --- a/src/base/VERSION +++ b/src/base/VERSION @@ -1 +1 @@ -v0.0.2 +v0.0.3 diff --git a/src/base/targets/buster-builder b/src/base/targets/buster-builder new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/src/base/targets/buster-builder diff --git a/src/base/targets/buster-slim b/src/base/targets/buster-slim new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/src/base/targets/buster-slim diff --git a/src/base/targets/sid-slim b/src/base/targets/sid-slim new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/src/base/targets/sid-slim diff --git a/src/git-snapshot/Dockerfile b/src/git-snapshot/Dockerfile index 3c78a99..87e08a6 100644 --- a/src/git-snapshot/Dockerfile +++ b/src/git-snapshot/Dockerfile @@ -1,5 +1,5 @@ ARG GIT_SNAPSHOT=0.0.1 -FROM registry.gitlab.com/grumps/grumpy-containers/base:v0.0.2 +FROM registry.gitlab.com/grumps/grumpy-containers/base:v0.0.3 ARG GIT_SNAPSHOT SHELL ["/bin/bash", "-c"] RUN install_deb python3-minimal python3-pip python3-setuptools python3-wheel git \ diff --git a/src/gitolite/Dockerfile b/src/gitolite/Dockerfile index 0127e22..e08e76b 100644 --- a/src/gitolite/Dockerfile +++ b/src/gitolite/Dockerfile @@ -1,4 +1,4 @@ -FROM registry.gitlab.com/grumps/grumpy-containers/base:v0.0.2 +FROM registry.gitlab.com/grumps/grumpy-containers/base:v0.0.3 SHELL ["/bin/bash", "-c"] RUN install_deb gitolite3 diff --git a/src/helm-tools/Dockerfile b/src/helm-tools/Dockerfile index 348cd6a..d3aba41 100644 --- a/src/helm-tools/Dockerfile +++ b/src/helm-tools/Dockerfile @@ -1,4 +1,4 @@ -FROM registry.gitlab.com/grumps/grumpy-containers/base:v0.0.1 +FROM registry.gitlab.com/grumps/grumpy-containers/base:v0.0.3 RUN apt-get update -y \ && apt-get install -y curl make git \ && curl -L -o /tmp/hm.tar.gz https://get.helm.sh/helm-v2.14.3-linux-amd64.tar.gz \ diff --git a/src/pelican/Dockerfile b/src/pelican/Dockerfile index 8a902f4..3834138 100644 --- a/src/pelican/Dockerfile +++ b/src/pelican/Dockerfile @@ -1,4 +1,4 @@ -FROM registry.gitlab.com/grumps/grumpy-containers/base:v0.0.1 +FROM registry.gitlab.com/grumps/grumpy-containers/base:v0.0.3 RUN apt-get update -y && apt-get install -y python3-pip libsass-dev ruby-sass RUN pip3 install pelican webassets Pillow markdown cssmin libsass USER app diff --git a/src/znc/Dockerfile b/src/znc/Dockerfile index c819b60..241761c 100644 --- a/src/znc/Dockerfile +++ b/src/znc/Dockerfile @@ -1,5 +1,5 @@ FROM gcr.io/google-containers/pause:latest -FROM registry.gitlab.com/grumps/grumpy-containers/base:v0.0.2-sid-slim +FROM registry.gitlab.com/grumps/grumpy-containers/base:v0.0.3-sid-slim SHELL ["/bin/bash", "-c"] RUN install_deb znc znc-perl znc-push znc-python znc-backlog USER app |