diff --git a/.gitignore b/.gitignore index f830a3c..9d382e1 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +*/logs/*.log .*.swp *.OLD docker-template diff --git a/1.12.2/.env b/1.12.2/.env deleted file mode 100644 index ba19da0..0000000 --- a/1.12.2/.env +++ /dev/null @@ -1,33 +0,0 @@ - -GB_STATE='production'; export GB_STATE -GB_ORGANIZATION='gearboxworks'; export GB_ORGANIZATION -GB_NAME='nginx'; export GB_NAME -GB_MAINTAINER='Gearbox Team '; export GB_MAINTAINER -GB_VERSION='1.12.2'; export GB_VERSION -GB_MAJORVERSION='1.12'; export GB_MAJORVERSION -GB_LATEST='false'; export GB_LATEST -GB_CLASS='webserver'; export GB_CLASS -GB_NETWORK='--network gearboxnet'; export GB_NETWORK - -GB_PORTS='80 443 '; export GB_PORTS -GB_VOLUMES=''; export GB_VOLUMES -GB_RESTART='--restart no'; export GB_RESTART -GB_RUN='/usr/sbin/nginx'; export GB_RUN -GB_ARGS=''; export GB_ARGS -GB_ENV='map[]'; export GB_ENV - -GB_BASE='gearboxworks/gearbox-base:alpine-3.5'; export GB_BASE -GB_REF='nginx:1.12.2-alpine'; export GB_REF - -GB_DOCKERFILE='1.12.2/DockerfileRuntime'; export GB_DOCKERFILE -GB_JSONFILE='1.12.2/gearbox.json'; export GB_JSONFILE -GB_JSON='{"state": "production","organization": "gearboxworks","name": "nginx","maintainer": "Gearbox Team ","class": "webserver","network": "--network gearboxnet","ports": ["80","443"],"volumes": "","restart": "--restart no","run": "/usr/sbin/nginx","args": "","env": {},"versions": {"1.15.9": {"majorversion": "1.15","latest": true,"ref": "nginx:1.15.9-alpine","base": "gearboxworks/gearbox-base:alpine-3.9"},"1.14.2": {"majorversion": "1.14","latest": false,"ref": "nginx:1.14.2-alpine","base": "gearboxworks/gearbox-base:alpine-3.8"},"1.13.12": {"majorversion": "1.13","latest": false,"ref": "nginx:1.13.12-alpine","base": "gearboxworks/gearbox-base:alpine-3.7"},"1.12.2": {"majorversion": "1.12","latest": false,"ref": "nginx:1.12.2-alpine","base": "gearboxworks/gearbox-base:alpine-3.5"}}}'; export GB_JSON - -GB_IMAGENAME='gearboxworks/nginx'; export GB_IMAGENAME -GB_IMAGEVERSION='gearboxworks/nginx:1.12.2'; export GB_IMAGEVERSION -GB_IMAGEMAJORVERSION='gearboxworks/nginx:1.12'; export GB_IMAGEMAJORVERSION - -GB_CONTAINERVERSION='nginx-1.12.2'; export GB_CONTAINERVERSION -GB_CONTAINERMAJORVERSION='nginx-1.12'; export GB_CONTAINERMAJORVERSION - -OS_TYPE="$(uname -s)"; export OS_TYPE diff --git a/1.12.2/logs/.keep b/1.12.2/logs/.keep deleted file mode 100644 index e69de29..0000000 diff --git a/1.13.12/.env b/1.13.12/.env deleted file mode 100644 index 8d794d0..0000000 --- a/1.13.12/.env +++ /dev/null @@ -1,33 +0,0 @@ - -GB_STATE='production'; export GB_STATE -GB_ORGANIZATION='gearboxworks'; export GB_ORGANIZATION -GB_NAME='nginx'; export GB_NAME -GB_MAINTAINER='Gearbox Team '; export GB_MAINTAINER -GB_VERSION='1.13.12'; export GB_VERSION -GB_MAJORVERSION='1.13'; export GB_MAJORVERSION -GB_LATEST='false'; export GB_LATEST -GB_CLASS='webserver'; export GB_CLASS -GB_NETWORK='--network gearboxnet'; export GB_NETWORK - -GB_PORTS='80 443 '; export GB_PORTS -GB_VOLUMES=''; export GB_VOLUMES -GB_RESTART='--restart no'; export GB_RESTART -GB_RUN='/usr/sbin/nginx'; export GB_RUN -GB_ARGS=''; export GB_ARGS -GB_ENV='map[]'; export GB_ENV - -GB_BASE='gearboxworks/gearbox-base:alpine-3.7'; export GB_BASE -GB_REF='nginx:1.13.12-alpine'; export GB_REF - -GB_DOCKERFILE='1.13.12/DockerfileRuntime'; export GB_DOCKERFILE -GB_JSONFILE='1.13.12/gearbox.json'; export GB_JSONFILE -GB_JSON='{"state": "production","organization": "gearboxworks","name": "nginx","maintainer": "Gearbox Team ","class": "webserver","network": "--network gearboxnet","ports": ["80","443"],"volumes": "","restart": "--restart no","run": "/usr/sbin/nginx","args": "","env": {},"versions": {"1.15.9": {"majorversion": "1.15","latest": true,"ref": "nginx:1.15.9-alpine","base": "gearboxworks/gearbox-base:alpine-3.9"},"1.14.2": {"majorversion": "1.14","latest": false,"ref": "nginx:1.14.2-alpine","base": "gearboxworks/gearbox-base:alpine-3.8"},"1.13.12": {"majorversion": "1.13","latest": false,"ref": "nginx:1.13.12-alpine","base": "gearboxworks/gearbox-base:alpine-3.7"},"1.12.2": {"majorversion": "1.12","latest": false,"ref": "nginx:1.12.2-alpine","base": "gearboxworks/gearbox-base:alpine-3.5"}}}'; export GB_JSON - -GB_IMAGENAME='gearboxworks/nginx'; export GB_IMAGENAME -GB_IMAGEVERSION='gearboxworks/nginx:1.13.12'; export GB_IMAGEVERSION -GB_IMAGEMAJORVERSION='gearboxworks/nginx:1.13'; export GB_IMAGEMAJORVERSION - -GB_CONTAINERVERSION='nginx-1.13.12'; export GB_CONTAINERVERSION -GB_CONTAINERMAJORVERSION='nginx-1.13'; export GB_CONTAINERMAJORVERSION - -OS_TYPE="$(uname -s)"; export OS_TYPE diff --git a/1.13.12/gearbox.json b/1.13.12/gearbox.json deleted file mode 100644 index b08096f..0000000 --- a/1.13.12/gearbox.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "state": "production", - "organization": "gearboxworks", - "name": "nginx", - "maintainer": "Gearbox Team ", - "class": "webserver", - "network": "--network gearboxnet", - "ports": [ - "80", - "443" - ], - "volumes": "", - "restart": "--restart no", - "run": "/usr/sbin/nginx", - "args": "", - "env": { - }, - "versions": { - "1.15.9": { - "majorversion": "1.15", - "latest": true, - "ref": "nginx:1.15.9-alpine", - "base": "gearboxworks/gearbox-base:alpine-3.9" - }, - "1.14.2": { - "majorversion": "1.14", - "latest": false, - "ref": "nginx:1.14.2-alpine", - "base": "gearboxworks/gearbox-base:alpine-3.8" - }, - "1.13.12": { - "majorversion": "1.13", - "latest": false, - "ref": "nginx:1.13.12-alpine", - "base": "gearboxworks/gearbox-base:alpine-3.7" - }, - "1.12.2": { - "majorversion": "1.12", - "latest": false, - "ref": "nginx:1.12.2-alpine", - "base": "gearboxworks/gearbox-base:alpine-3.5" - } - } -} - diff --git a/1.13.12/logs/.keep b/1.13.12/logs/.keep deleted file mode 100644 index e69de29..0000000 diff --git a/1.14.2/.env b/1.14.2/.env deleted file mode 100644 index 378aa45..0000000 --- a/1.14.2/.env +++ /dev/null @@ -1,33 +0,0 @@ - -GB_STATE='production'; export GB_STATE -GB_ORGANIZATION='gearboxworks'; export GB_ORGANIZATION -GB_NAME='nginx'; export GB_NAME -GB_MAINTAINER='Gearbox Team '; export GB_MAINTAINER -GB_VERSION='1.14.2'; export GB_VERSION -GB_MAJORVERSION='1.14'; export GB_MAJORVERSION -GB_LATEST='false'; export GB_LATEST -GB_CLASS='webserver'; export GB_CLASS -GB_NETWORK='--network gearboxnet'; export GB_NETWORK - -GB_PORTS='80 443 '; export GB_PORTS -GB_VOLUMES=''; export GB_VOLUMES -GB_RESTART='--restart no'; export GB_RESTART -GB_RUN='/usr/sbin/nginx'; export GB_RUN -GB_ARGS=''; export GB_ARGS -GB_ENV='map[]'; export GB_ENV - -GB_BASE='gearboxworks/gearbox-base:alpine-3.8'; export GB_BASE -GB_REF='nginx:1.14.2-alpine'; export GB_REF - -GB_DOCKERFILE='1.14.2/DockerfileRuntime'; export GB_DOCKERFILE -GB_JSONFILE='1.14.2/gearbox.json'; export GB_JSONFILE -GB_JSON='{"state": "production","organization": "gearboxworks","name": "nginx","maintainer": "Gearbox Team ","class": "webserver","network": "--network gearboxnet","ports": ["80","443"],"volumes": "","restart": "--restart no","run": "/usr/sbin/nginx","args": "","env": {},"versions": {"1.15.9": {"majorversion": "1.15","latest": true,"ref": "nginx:1.15.9-alpine","base": "gearboxworks/gearbox-base:alpine-3.9"},"1.14.2": {"majorversion": "1.14","latest": false,"ref": "nginx:1.14.2-alpine","base": "gearboxworks/gearbox-base:alpine-3.8"},"1.13.12": {"majorversion": "1.13","latest": false,"ref": "nginx:1.13.12-alpine","base": "gearboxworks/gearbox-base:alpine-3.7"},"1.12.2": {"majorversion": "1.12","latest": false,"ref": "nginx:1.12.2-alpine","base": "gearboxworks/gearbox-base:alpine-3.5"}}}'; export GB_JSON - -GB_IMAGENAME='gearboxworks/nginx'; export GB_IMAGENAME -GB_IMAGEVERSION='gearboxworks/nginx:1.14.2'; export GB_IMAGEVERSION -GB_IMAGEMAJORVERSION='gearboxworks/nginx:1.14'; export GB_IMAGEMAJORVERSION - -GB_CONTAINERVERSION='nginx-1.14.2'; export GB_CONTAINERVERSION -GB_CONTAINERMAJORVERSION='nginx-1.14'; export GB_CONTAINERMAJORVERSION - -OS_TYPE="$(uname -s)"; export OS_TYPE diff --git a/1.14.2/gearbox.json b/1.14.2/gearbox.json deleted file mode 100644 index b08096f..0000000 --- a/1.14.2/gearbox.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "state": "production", - "organization": "gearboxworks", - "name": "nginx", - "maintainer": "Gearbox Team ", - "class": "webserver", - "network": "--network gearboxnet", - "ports": [ - "80", - "443" - ], - "volumes": "", - "restart": "--restart no", - "run": "/usr/sbin/nginx", - "args": "", - "env": { - }, - "versions": { - "1.15.9": { - "majorversion": "1.15", - "latest": true, - "ref": "nginx:1.15.9-alpine", - "base": "gearboxworks/gearbox-base:alpine-3.9" - }, - "1.14.2": { - "majorversion": "1.14", - "latest": false, - "ref": "nginx:1.14.2-alpine", - "base": "gearboxworks/gearbox-base:alpine-3.8" - }, - "1.13.12": { - "majorversion": "1.13", - "latest": false, - "ref": "nginx:1.13.12-alpine", - "base": "gearboxworks/gearbox-base:alpine-3.7" - }, - "1.12.2": { - "majorversion": "1.12", - "latest": false, - "ref": "nginx:1.12.2-alpine", - "base": "gearboxworks/gearbox-base:alpine-3.5" - } - } -} - diff --git a/1.14.2/logs/.keep b/1.14.2/logs/.keep deleted file mode 100644 index e69de29..0000000 diff --git a/1.15.9/.env b/1.15.9/.env deleted file mode 100644 index 4d87410..0000000 --- a/1.15.9/.env +++ /dev/null @@ -1,33 +0,0 @@ - -GB_STATE='production'; export GB_STATE -GB_ORGANIZATION='gearboxworks'; export GB_ORGANIZATION -GB_NAME='nginx'; export GB_NAME -GB_MAINTAINER='Gearbox Team '; export GB_MAINTAINER -GB_VERSION='1.15.9'; export GB_VERSION -GB_MAJORVERSION='1.15'; export GB_MAJORVERSION -GB_LATEST='true'; export GB_LATEST -GB_CLASS='webserver'; export GB_CLASS -GB_NETWORK='--network gearboxnet'; export GB_NETWORK - -GB_PORTS='80 443 '; export GB_PORTS -GB_VOLUMES=''; export GB_VOLUMES -GB_RESTART='--restart no'; export GB_RESTART -GB_RUN='/usr/sbin/nginx'; export GB_RUN -GB_ARGS=''; export GB_ARGS -GB_ENV='map[]'; export GB_ENV - -GB_BASE='gearboxworks/gearbox-base:alpine-3.9'; export GB_BASE -GB_REF='nginx:1.15.9-alpine'; export GB_REF - -GB_DOCKERFILE='1.15.9/DockerfileRuntime'; export GB_DOCKERFILE -GB_JSONFILE='1.15.9/gearbox.json'; export GB_JSONFILE -GB_JSON='{"state": "production","organization": "gearboxworks","name": "nginx","maintainer": "Gearbox Team ","class": "webserver","network": "--network gearboxnet","ports": ["80","443"],"volumes": "","restart": "--restart no","run": "/usr/sbin/nginx","args": "","env": {},"versions": {"1.15.9": {"majorversion": "1.15","latest": true,"ref": "nginx:1.15.9-alpine","base": "gearboxworks/gearbox-base:alpine-3.9"},"1.14.2": {"majorversion": "1.14","latest": false,"ref": "nginx:1.14.2-alpine","base": "gearboxworks/gearbox-base:alpine-3.8"},"1.13.12": {"majorversion": "1.13","latest": false,"ref": "nginx:1.13.12-alpine","base": "gearboxworks/gearbox-base:alpine-3.7"},"1.12.2": {"majorversion": "1.12","latest": false,"ref": "nginx:1.12.2-alpine","base": "gearboxworks/gearbox-base:alpine-3.5"}}}'; export GB_JSON - -GB_IMAGENAME='gearboxworks/nginx'; export GB_IMAGENAME -GB_IMAGEVERSION='gearboxworks/nginx:1.15.9'; export GB_IMAGEVERSION -GB_IMAGEMAJORVERSION='gearboxworks/nginx:1.15'; export GB_IMAGEMAJORVERSION - -GB_CONTAINERVERSION='nginx-1.15.9'; export GB_CONTAINERVERSION -GB_CONTAINERMAJORVERSION='nginx-1.15'; export GB_CONTAINERMAJORVERSION - -OS_TYPE="$(uname -s)"; export OS_TYPE diff --git a/1.15.9/gearbox.json b/1.15.9/gearbox.json deleted file mode 100644 index b08096f..0000000 --- a/1.15.9/gearbox.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "state": "production", - "organization": "gearboxworks", - "name": "nginx", - "maintainer": "Gearbox Team ", - "class": "webserver", - "network": "--network gearboxnet", - "ports": [ - "80", - "443" - ], - "volumes": "", - "restart": "--restart no", - "run": "/usr/sbin/nginx", - "args": "", - "env": { - }, - "versions": { - "1.15.9": { - "majorversion": "1.15", - "latest": true, - "ref": "nginx:1.15.9-alpine", - "base": "gearboxworks/gearbox-base:alpine-3.9" - }, - "1.14.2": { - "majorversion": "1.14", - "latest": false, - "ref": "nginx:1.14.2-alpine", - "base": "gearboxworks/gearbox-base:alpine-3.8" - }, - "1.13.12": { - "majorversion": "1.13", - "latest": false, - "ref": "nginx:1.13.12-alpine", - "base": "gearboxworks/gearbox-base:alpine-3.7" - }, - "1.12.2": { - "majorversion": "1.12", - "latest": false, - "ref": "nginx:1.12.2-alpine", - "base": "gearboxworks/gearbox-base:alpine-3.5" - } - } -} - diff --git a/1.15.9/logs/.keep b/1.15.9/logs/.keep deleted file mode 100644 index e69de29..0000000 diff --git a/Makefile b/Makefile index 502b4e6..dd49ec9 100644 --- a/Makefile +++ b/Makefile @@ -57,6 +57,9 @@ endif ################################################################################ # Image related commands. +.DEFAULT: + @make -k help + default: all all: @@ -65,6 +68,8 @@ all: help: @echo "################################################################################" @echo "init - Initialize repository from TEMPLATE." + @echo "update - Update repository TEMPLATE." + @echo "git-release - Generate a repository release." @echo "" @echo "clean-[all | ] - Clean runtime container image." @echo "build-[all | ] - Generate runtime container image." @@ -102,6 +107,15 @@ init: *.json @./bin/create-version.sh "all" +################################################################################ +update: + @./bin/TemplateUpdate.sh + @make init + +git-release: + @./bin/TemplateRelease.sh + + ################################################################################ info: @./bin/$@.sh $(VERSION) diff --git a/README.md b/README.md index 718d84a..d348e71 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ -![Gearbox](https://github.com/gearboxworks/gearbox.github.io/raw/master/Gearbox-100x.png) +![Gearbox](https://raw.githubusercontent.com/gearboxworks/gearboxworks.github.io/master/assets/images/gearbox-logo.png) -# Another [Gearbox](https://github.com/gearboxworks/) Docker container service - nginx -This is the repository for the [nginx]() Docker container implemented for [Gearbox](https://github.com/gearboxworks/). +# nginx Docker container service for [Gearbox](https://github.com/gearboxworks/) +This is the repository for the [nginx](unknown) Docker container implemented for [Gearbox](https://github.com/gearboxworks/). ## Repository Info @@ -12,13 +12,12 @@ GitHub release(latest): ![last-release-date](https://img.shields.io/github/relea ## Supported versions and respective Dockerfiles -| Service | GitHub Version | Docker Version | Docker Size | Docker Tags | Dockerfile | -| ------- | -------------- | -------------- | ----------- | ----------- | ---------- | -| nginx | ![nginx](https://img.shields.io/badge/nginx-1.12.2-green.svg) | ![Docker Version)](https://img.shields.io/docker/v/gearboxworks/nginx/1.12.2) | ![Docker Size](https://img.shields.io/docker/image-size/gearboxworks/nginx/1.12.2) | `1.12.2`, `1.12` | _([1.12.2/DockerfileRuntime](https://github.com/gearboxworks/docker-nginx/blob/master/1.12/DockerfileRuntime))_ | -| nginx | ![nginx](https://img.shields.io/badge/nginx-1.13.12-green.svg) | ![Docker Version)](https://img.shields.io/docker/v/gearboxworks/nginx/1.13.12) | ![Docker Size](https://img.shields.io/docker/image-size/gearboxworks/nginx/1.13.12) | `1.13.12`, `1.13` | _([1.13.12/DockerfileRuntime](https://github.com/gearboxworks/docker-nginx/blob/master/1.13/DockerfileRuntime))_ | -| nginx | ![nginx](https://img.shields.io/badge/nginx-1.14.2-green.svg) | ![Docker Version)](https://img.shields.io/docker/v/gearboxworks/nginx/1.14.2) | ![Docker Size](https://img.shields.io/docker/image-size/gearboxworks/nginx/1.14.2) | `1.14.2`, `1.14` | _([1.14.2/DockerfileRuntime](https://github.com/gearboxworks/docker-nginx/blob/master/1.14/DockerfileRuntime))_ | -| nginx | ![nginx](https://img.shields.io/badge/nginx-1.15.9-green.svg) | ![Docker Version)](https://img.shields.io/docker/v/gearboxworks/nginx/1.15.9) | ![Docker Size](https://img.shields.io/docker/image-size/gearboxworks/nginx/1.15.9) | `1.15.9`, `1.15`, `latest` | _([1.15.9/DockerfileRuntime](https://github.com/gearboxworks/docker-nginx/blob/master/1.15/DockerfileRuntime))_ | - +| Service | GitHub Version | Docker Version | Docker Size | Docker Tags | +| ------- | -------------- | -------------- | ----------- | ----------- | +| [nginx](unknown) | ![nginx](https://img.shields.io/badge/nginx-1.12.2-green.svg) | ![Docker Version)](https://img.shields.io/docker/v/gearboxworks/nginx/1.12.2) | ![Docker Size](https://img.shields.io/docker/image-size/gearboxworks/nginx/1.12.2) | _([`1.12.2`, `1.12`](https://github.com/gearboxworks/docker-nginx/blob/master/1.12/DockerfileRuntime))_ | +| [nginx](unknown) | ![nginx](https://img.shields.io/badge/nginx-1.13.12-green.svg) | ![Docker Version)](https://img.shields.io/docker/v/gearboxworks/nginx/1.13.12) | ![Docker Size](https://img.shields.io/docker/image-size/gearboxworks/nginx/1.13.12) | _([`1.13.12`, `1.13`](https://github.com/gearboxworks/docker-nginx/blob/master/1.13/DockerfileRuntime))_ | +| [nginx](unknown) | ![nginx](https://img.shields.io/badge/nginx-1.14.2-green.svg) | ![Docker Version)](https://img.shields.io/docker/v/gearboxworks/nginx/1.14.2) | ![Docker Size](https://img.shields.io/docker/image-size/gearboxworks/nginx/1.14.2) | _([`1.14.2`, `1.14`](https://github.com/gearboxworks/docker-nginx/blob/master/1.14/DockerfileRuntime))_ | +| [nginx](unknown) | ![nginx](https://img.shields.io/badge/nginx-1.15.9-green.svg) | ![Docker Version)](https://img.shields.io/docker/v/gearboxworks/nginx/1.15.9) | ![Docker Size](https://img.shields.io/docker/image-size/gearboxworks/nginx/1.15.9) | _([`1.15.9`, `1.15`, `latest`](https://github.com/gearboxworks/docker-nginx/blob/master/1.15/DockerfileRuntime))_ | ## Using this container. @@ -45,7 +44,7 @@ Simply clone this repository to your local machine `make push` - Push already built Docker images to Docker Hub, (only for Gearbox admins). Push all versions from the base directory or specific versions from each directory. ### Runtime from GitHub repo -When you `cd` into a version directory you can also perform a few more actions. +You can either build your container as above, or use it from DockerHub with these commands: `make start` - Spin up a Docker container with the correct runtime configs. diff --git a/TEMPLATE/Makefile b/TEMPLATE/Makefile index 502b4e6..dd49ec9 100644 --- a/TEMPLATE/Makefile +++ b/TEMPLATE/Makefile @@ -57,6 +57,9 @@ endif ################################################################################ # Image related commands. +.DEFAULT: + @make -k help + default: all all: @@ -65,6 +68,8 @@ all: help: @echo "################################################################################" @echo "init - Initialize repository from TEMPLATE." + @echo "update - Update repository TEMPLATE." + @echo "git-release - Generate a repository release." @echo "" @echo "clean-[all | ] - Clean runtime container image." @echo "build-[all | ] - Generate runtime container image." @@ -102,6 +107,15 @@ init: *.json @./bin/create-version.sh "all" +################################################################################ +update: + @./bin/TemplateUpdate.sh + @make init + +git-release: + @./bin/TemplateRelease.sh + + ################################################################################ info: @./bin/$@.sh $(VERSION) diff --git a/TEMPLATE/README.md.tmpl b/TEMPLATE/README.md.tmpl index 7648be2..0cc4f9d 100644 --- a/TEMPLATE/README.md.tmpl +++ b/TEMPLATE/README.md.tmpl @@ -1,28 +1,32 @@ -![Gearbox](https://github.com/gearboxworks/gearbox.github.io/raw/master/Gearbox-100x.png) +![Gearbox](https://raw.githubusercontent.com/gearboxworks/gearboxworks.github.io/master/assets/images/gearbox-logo.png) -# Another [Gearbox](https://github.com/gearboxworks/) Docker container service - {{ .Json.name }} -This is the repository for the [{{ .Json.name }}]({{ .Json.refurl }}) Docker container implemented for [Gearbox](https://github.com/gearboxworks/). +# {{ .Json.meta.name }} Docker container service for [Gearbox](https://github.com/gearboxworks/) +This is the repository for the [{{ .Json.meta.name }}]({{ .Json.meta.refurl }}) Docker container implemented for [Gearbox](https://github.com/gearboxworks/). ## Repository Info -GitHub commit: ![commit-date](https://img.shields.io/github/last-commit/gearboxworks/docker-{{ .Json.name }}?style=flat-square) +GitHub commit: ![commit-date](https://img.shields.io/github/last-commit/gearboxworks/docker-{{ .Json.meta.name }}?style=flat-square) -GitHub release(latest): ![last-release-date](https://img.shields.io/github/release-date/gearboxworks/docker-{{ .Json.name }}) ![last-release-date](https://img.shields.io/github/v/tag/gearboxworks/docker-{{ .Json.name }}?sort=semver) [![release-state](https://github.com/gearboxworks/docker-{{ .Json.name }}/workflows/release/badge.svg?event=release)](https://github.com/gearboxworks/docker-{{ .Json.name }}/actions?query=workflow%3Arelease) +GitHub release(latest): ![last-release-date](https://img.shields.io/github/release-date/gearboxworks/docker-{{ .Json.meta.name }}) ![last-release-date](https://img.shields.io/github/v/tag/gearboxworks/docker-{{ .Json.meta.name }}?sort=semver) [![release-state](https://github.com/gearboxworks/docker-{{ .Json.meta.name }}/workflows/release/badge.svg?event=release)](https://github.com/gearboxworks/docker-{{ .Json.meta.name }}/actions?query=workflow%3Arelease) ## Supported versions and respective Dockerfiles -{{- if .Json.base }} +{{- if .Json.build.base }} | Base | GitHub Version | Docker Version | Docker Size | Docker Tags | | ------- | -------------- | -------------- | ----------- | ----------- | {{- range $key, $value := .Json.versions }} -| {{ if $.Json.refurl }}[{{ $.Json.name }}]({{ $.Json.refurl }}){{ else }}{{ $.Json.name }}{{ end }} | ![{{ $.Json.name }}](https://img.shields.io/badge/{{ $key }}-green.svg) | ![Docker Version)](https://img.shields.io/docker/v/gearboxworks/{{ $.Json.name }}/{{ $key }}) | ![Docker Size](https://img.shields.io/docker/image-size/gearboxworks/{{ $.Json.name }}/{{ $key }}) | _([`{{ $key }}`{{ with $value.majorversion }}, `{{ . }}`{{ end }}{{ with $value.latest }}, `latest`{{ end }}](https://github.com/gearboxworks/docker-{{ $.Json.name }}/blob/master/{{ $value.majorversion }}/DockerfileRuntime))_ | +{{- if ne $key "" }} +| {{ if $.Json.meta.refurl }}[{{ $.Json.meta.name }}]({{ $.Json.meta.refurl }}){{ else }}{{ $.Json.meta.name }}{{ end }} | ![{{ $.Json.meta.name }}](https://img.shields.io/badge/{{ $key }}-green.svg) | ![Docker Version)](https://img.shields.io/docker/v/gearboxworks/{{ $.Json.meta.name }}/{{ $key }}) | ![Docker Size](https://img.shields.io/docker/image-size/gearboxworks/{{ $.Json.meta.name }}/{{ $key }}) | _([`{{ $key }}`{{ with $value.majorversion }}, `{{ . }}`{{ end }}{{ with $value.latest }}, `latest`{{ end }}](https://github.com/gearboxworks/docker-{{ $.Json.meta.name }}/blob/master/{{ $value.majorversion }}/DockerfileRuntime))_ | +{{- end }} {{- end }} {{- else }} | Service | GitHub Version | Docker Version | Docker Size | Docker Tags | | ------- | -------------- | -------------- | ----------- | ----------- | {{- range $key, $value := .Json.versions }} -| {{ if $.Json.refurl }}[{{ $.Json.name }}]({{ $.Json.refurl }}){{ else }}{{ $.Json.name }}{{ end }} | ![{{ $.Json.name }}](https://img.shields.io/badge/{{ $.Json.name }}-{{ $key }}-green.svg) | ![Docker Version)](https://img.shields.io/docker/v/gearboxworks/{{ $.Json.name }}/{{ $key }}) | ![Docker Size](https://img.shields.io/docker/image-size/gearboxworks/{{ $.Json.name }}/{{ $key }}) | _([`{{ $key }}`{{ with $value.majorversion }}, `{{ . }}`{{ end }}{{ with $value.latest }}, `latest`{{ end }}](https://github.com/gearboxworks/docker-{{ $.Json.name }}/blob/master/{{ $value.majorversion }}/DockerfileRuntime))_ | +{{- if ne $key "" }} +| {{ if $.Json.meta.refurl }}[{{ $.Json.meta.name }}]({{ $.Json.meta.refurl }}){{ else }}{{ $.Json.meta.name }}{{ end }} | ![{{ $.Json.meta.name }}](https://img.shields.io/badge/{{ $.Json.meta.name }}-{{ $key }}-green.svg) | ![Docker Version)](https://img.shields.io/docker/v/gearboxworks/{{ $.Json.meta.name }}/{{ $key }}) | ![Docker Size](https://img.shields.io/docker/image-size/gearboxworks/{{ $.Json.meta.name }}/{{ $key }}) | _([`{{ $key }}`{{ with $value.majorversion }}, `{{ . }}`{{ end }}{{ with $value.latest }}, `latest`{{ end }}](https://github.com/gearboxworks/docker-{{ $.Json.meta.name }}/blob/master/{{ $value.majorversion }}/DockerfileRuntime))_ | +{{- end }} {{- end }} {{- end }} @@ -39,7 +43,7 @@ You can either use it directly from DockerHub or GitHub. ### Setup from GitHub repo Simply clone this repository to your local machine -`git clone https://github.com/gearboxworks/{{ .Json.name }}-docker.git` +`git clone https://github.com/gearboxworks/{{ .Json.meta.name }}-docker.git` ### Building from GitHub repo `make build` - Build Docker images. Build all versions from the base directory or specific versions from each directory. @@ -51,7 +55,7 @@ Simply clone this repository to your local machine `make push` - Push already built Docker images to Docker Hub, (only for Gearbox admins). Push all versions from the base directory or specific versions from each directory. ### Runtime from GitHub repo -When you `cd` into a version directory you can also perform a few more actions. +You can either build your container as above, or use it from DockerHub with these commands: `make start` - Spin up a Docker container with the correct runtime configs. @@ -69,38 +73,38 @@ When you `cd` into a version directory you can also perform a few more actions. ## Method 2: Docker Hub ### Setup from Docker Hub -A simple `docker pull gearbox/{{ .Json.name }}` will pull down the latest version. +A simple `docker pull gearbox/{{ .Json.meta.name }}` will pull down the latest version. ### Starting start - Spin up a Docker container with the correct runtime configs. -`docker run -d --name {{ .Json.name }}-latest --restart unless-stopped --network gearboxnet gearbox/{{ .Json.name }}:latest` +`docker run -d --name {{ .Json.meta.name }}-latest --restart unless-stopped --network gearboxnet gearbox/{{ .Json.meta.name }}:latest` ### Stopping stop - Stop a Docker container. -`docker stop {{ .Json.name }}-latest` +`docker stop {{ .Json.meta.name }}-latest` ### Remove container rm - Remove the Docker container. -`docker container rm {{ .Json.name }}-latest` +`docker container rm {{ .Json.meta.name }}-latest` ### Run in foreground run - Run a Docker container in the foreground, (all STDOUT and STDERR will go to console). The Container be removed on termination. -`docker run --rm --name {{ .Json.name }}-latest --network gearboxnet gearbox/{{ .Json.name }}:latest` +`docker run --rm --name {{ .Json.meta.name }}-latest --network gearboxnet gearbox/{{ .Json.meta.name }}:latest` ### Run a shell shell - Run a shell, (/bin/bash), within a Docker container. -`docker run --rm --name {{ .Json.name }}-latest -i -t --network gearboxnet gearbox/{{ .Json.name }}:latest /bin/bash` +`docker run --rm --name {{ .Json.meta.name }}-latest -i -t --network gearboxnet gearbox/{{ .Json.meta.name }}:latest /bin/bash` ### SSH ssh - All [Gearbox](https://github.com/gearboxworks/) containers have a running SSH daemon. So you can connect remotely. ``` -SSH_PORT="$(docker port {{ .Json.name }}-latest 22/tcp | sed 's/0.0.0.0://')" +SSH_PORT="$(docker port {{ .Json.meta.name }}-latest 22/tcp | sed 's/0.0.0.0://')" ssh -p ${SSH_PORT} -o StrictHostKeyChecking=no gearbox@localhost ``` diff --git a/TEMPLATE/build.sh.tmpl b/TEMPLATE/build.sh.tmpl index 2418b8b..f21819e 100644 --- a/TEMPLATE/build.sh.tmpl +++ b/TEMPLATE/build.sh.tmpl @@ -1,7 +1,7 @@ #!/bin/bash # {{ .CreationWarning }} # {{ .CreationInfo }} -{{ if not .Json.name }} +{{ if not .Json.meta.name }} # No name {{ else }} @@ -26,16 +26,22 @@ else fi ################################################################################ -if [ -f "{{ .JsonFile.Dir }}/{{ .JsonFile.Name }}" ] -then - cp "{{ .JsonFile.Dir }}/{{ .JsonFile.Name }}" "${DIR}/gearbox-{{ .Json.name }}.json" -fi +#if [ -f "{{ .JsonFile.Dir }}/{{ .JsonFile.Name }}" ] +#then +# if [ "${GB_REF}" == "base" ] +# then +# cp "{{ .JsonFile.Dir }}/{{ .JsonFile.Name }}" "${DIR}/{{ .Json.meta.name }}.json" +# else +# cp "{{ .JsonFile.Dir }}/{{ .JsonFile.Name }}" "${DIR}/gearbox-{{ .Json.meta.name }}.json" +# fi +# cp "{{ .JsonFile.Dir }}/{{ .JsonFile.Name }}" "${DIR}/gearbox.json" +#fi ################################################################################ TMPLDIRS="$(find ${DIR}/ -name '*JSON_NAME*')" for dir in ${TMPLDIRS} do - NEWDIR="$(echo -n "${dir}" | sed 's/JSON_NAME/{{ .Json.name }}/')" + NEWDIR="$(echo -n "${dir}" | sed 's/JSON_NAME/{{ .Json.meta.name }}/')" mv -i "${dir}" "${NEWDIR}" done @@ -43,7 +49,7 @@ done TMPLFILES="$(find ${DIR}/ -name '*\.tmpl')" for file in ${TMPLFILES} do - OUTFILE="$(echo -n "${file}" | sed 's/JSON_NAME/{{ .Json.name }}/')" + OUTFILE="$(echo -n "${file}" | sed 's/JSON_NAME/{{ .Json.meta.name }}/')" if [ "${file}" != "${OUTFILE}" ] then mv -i "${file}" "${OUTFILE}" diff --git a/TEMPLATE/build/build/JSON_NAME.sh.tmpl b/TEMPLATE/build/build/JSON_NAME.sh.tmpl index 65444fb..50308df 100644 --- a/TEMPLATE/build/build/JSON_NAME.sh.tmpl +++ b/TEMPLATE/build/build/JSON_NAME.sh.tmpl @@ -8,26 +8,28 @@ c_ok "Started." c_ok "Installing packages." APKBIN="$(which apk)" if [ "${APKBIN}" != "" ] - if [ -f /etc/gearbox/build/{{ .Json.name }}.apks ] +then + if [ -f /etc/gearbox/build/{{ .Json.meta.name }}.apks ] then - APKS="$(cat /etc/gearbox/build/{{ .Json.name }}.apks)" + APKS="$(cat /etc/gearbox/build/{{ .Json.meta.name }}.apks)" ${APKBIN} update && ${APKBIN} add --no-cache ${APKS}; checkExit fi fi APTBIN="$(which apt-get)" if [ "${APTBIN}" != "" ] - if [ -f /etc/gearbox/build/{{ .Json.name }}.apt ] +then + if [ -f /etc/gearbox/build/{{ .Json.meta.name }}.apt ] then - DEBS="$(cat /etc/gearbox/build/{{ .Json.name }}.apt)" + DEBS="$(cat /etc/gearbox/build/{{ .Json.meta.name }}.apt)" ${APTBIN} update && ${APTBIN} install ${DEBS}; checkExit fi fi -if [ -f /etc/gearbox/build/{{ .Json.name }}.env ] +if [ -f /etc/gearbox/build/{{ .Json.meta.name }}.env ] then - . /etc/gearbox/build/{{ .Json.name }}.env + . /etc/gearbox/build/{{ .Json.meta.name }}.env fi if [ ! -d /usr/local/bin ] diff --git a/TEMPLATE/build/unit-tests/JSON_NAME/01-base.sh.tmpl b/TEMPLATE/build/unit-tests/JSON_NAME/01-base.sh.tmpl index ee601e6..12ce705 100644 --- a/TEMPLATE/build/unit-tests/JSON_NAME/01-base.sh.tmpl +++ b/TEMPLATE/build/unit-tests/JSON_NAME/01-base.sh.tmpl @@ -1,7 +1,7 @@ #!/bin/bash # {{ .CreationInfo }} -p_info "{{ .Json.name }}" "Release test started." +p_info "{{ .Json.meta.name }}" "Release test started." if id -u gearbox then @@ -17,5 +17,5 @@ else c_err "Gearbox group NOT found." fi -p_info "{{ .Json.name }}" "Release test finished." +p_info "{{ .Json.meta.name }}" "Release test finished." diff --git a/TEMPLATE/version.sh.tmpl b/TEMPLATE/version.sh.tmpl index 02d819d..8db29ba 100644 --- a/TEMPLATE/version.sh.tmpl +++ b/TEMPLATE/version.sh.tmpl @@ -5,50 +5,48 @@ {{ if not $version }} # No version found in gearbox.json -{{ else if not .Json.name }} +{{ else if not .Json.meta.name }} # No name found in gearbox.json {{ else }} VERSION="{{ .Env.GB_VERSION }}" export VERSION -if [ -d "${VERSION}" ] +GB_VERDIR="versions/{{ .Env.GB_VERSION }}" +export GB_VERDIR + +if [ -d "${GB_VERDIR}" ] then - echo "Gearbox: Release version directory ${VERSION} already exists." + echo "Gearbox: Release version directory ${GB_VERDIR} already exists." exit 1 fi ################################################################################ # Maybe we have rsync, maybe we don't. -mkdir "${VERSION}" +mkdir -p "${GB_VERDIR}" +mkdir -p "${GB_VERDIR}/logs" RSYNC="$(which rsync)" if [ "${RSYNC}" != "" ] then - rsync -HvaxP TEMPLATE/version/ "${VERSION}/" + rsync -HvaxP TEMPLATE/version/ "${GB_VERDIR}/" else - tar cf - -C TEMPLATE/version . | tar xvf - -C "${VERSION}" -fi - -################################################################################ -if [ -f "{{ $.JsonFile.Dir }}/{{ $.JsonFile.Name }}" ] -then - cp "{{ $.JsonFile.Dir }}/{{ $.JsonFile.Name }}" "${VERSION}/gearbox.json" + tar cf - -C TEMPLATE/version . | tar xvf - -C "${GB_VERDIR}" fi ################################################################################ -TMPLDIRS="$(find ${VERSION}/ -name '*JSON_NAME*')" +TMPLDIRS="$(find ${GB_VERDIR}/ -name '*JSON_NAME*')" for dir in ${TMPLDIRS} do - NEWDIR="$(echo -n "${dir}" | sed 's/JSON_NAME/{{ $.Json.name }}/')" + NEWDIR="$(echo -n "${dir}" | sed 's/JSON_NAME/{{ $.Json.meta.name }}/')" mv -i "${dir}" "${NEWDIR}" done ################################################################################ -TMPLFILES="$(find ${VERSION}/ -name '*\.tmpl')" +TMPLFILES="$(find ${GB_VERDIR}/ -name '*\.tmpl')" for file in ${TMPLFILES} do - OUTFILE="$(echo -n "${file}" | sed 's/JSON_NAME/{{ $.Json.name }}/')" + OUTFILE="$(echo -n "${file}" | sed 's/JSON_NAME/{{ $.Json.meta.name }}/')" if [ "${file}" != "${OUTFILE}" ] then mv -i "${file}" "${OUTFILE}" @@ -58,7 +56,8 @@ do {{ $.ExecName }} -json "{{ $.JsonFile.Dir }}/{{ $.JsonFile.Name }}" -create "${OUTFILE}" done -find ${VERSION}/rootfs/etc/gearbox/services -type f | xargs chmod 755 -find ${VERSION}/ -name '*\.sh' | xargs chmod 755 +find ${GB_VERDIR}/rootfs/etc/gearbox/services -type f | xargs chmod 755 +find ${GB_VERDIR}/ -name '*\.sh' | xargs chmod 755 + {{ end }} # END diff --git a/TEMPLATE/version/.env.tmpl b/TEMPLATE/version/.env.tmpl index f96733e..bbf85f4 100755 --- a/TEMPLATE/version/.env.tmpl +++ b/TEMPLATE/version/.env.tmpl @@ -1,34 +1,34 @@ {{- $version := FindInMap .Json.versions .Env.GB_VERSION }} -GB_STATE='{{ .Json.state }}'; export GB_STATE -GB_ORGANIZATION='{{ .Json.organization }}'; export GB_ORGANIZATION -GB_NAME='{{ .Json.name }}'; export GB_NAME -GB_MAINTAINER='{{ .Json.maintainer }}'; export GB_MAINTAINER +GB_STATE='{{ with .Json.meta.state }}{{ . }}{{ end }}'; export GB_STATE +GB_ORGANIZATION='{{ with .Json.meta.organization }}{{ . }}{{ end }}'; export GB_ORGANIZATION +GB_NAME='{{ with .Json.meta.name }}{{ . }}{{ end }}'; export GB_NAME +GB_MAINTAINER='{{ with .Json.meta.maintainer }}{{ . }}{{ end }}'; export GB_MAINTAINER GB_VERSION='{{ .Env.GB_VERSION }}'; export GB_VERSION -GB_MAJORVERSION='{{ $version.majorversion }}'; export GB_MAJORVERSION -GB_LATEST='{{ $version.latest }}'; export GB_LATEST -GB_CLASS='{{ .Json.class }}'; export GB_CLASS -GB_NETWORK='{{ .Json.network }}'; export GB_NETWORK +GB_MAJORVERSION='{{ with $version.majorversion }}{{ . }}{{ end }}'; export GB_MAJORVERSION +GB_LATEST='{{ with $version.latest }}{{ . }}{{ end }}'; export GB_LATEST +GB_CLASS='{{ with .Json.meta.class }}{{ . }}{{ end }}'; export GB_CLASS +GB_NETWORK='{{ with .Json.build.network }}{{ . }}{{ end }}'; export GB_NETWORK -GB_PORTS='{{ range .Json.ports }}{{ . }} {{ end }}'; export GB_PORTS -GB_VOLUMES='{{ .Json.volumes }}'; export GB_VOLUMES -GB_RESTART='{{ .Json.restart }}'; export GB_RESTART -GB_RUN='{{ .Json.run }}'; export GB_RUN -GB_ARGS='{{ .Json.args }}'; export GB_ARGS -GB_ENV='{{ .Json.env }}'; export GB_ENV +GB_PORTS='{{ range .Json.build.ports }}{{ . }} {{ end }}'; export GB_PORTS +GB_VOLUMES='{{ with .Json.volumes }}{{ . }}{{ end }}'; export GB_VOLUMES +GB_RESTART='{{ with .Json.build.restart }}{{ . }}{{ end }}'; export GB_RESTART +GB_RUN='{{ with .Json.build.run }}{{ . }}{{ end }}'; export GB_RUN +GB_ARGS='{{ with .Json.build.args }}{{ . }}{{ end }}'; export GB_ARGS +GB_ENV='{{ with .Json.build.env }}{{ . }}{{ end }}'; export GB_ENV -GB_BASE='{{ $version.base }}'; export GB_BASE -GB_REF='{{ $version.ref }}'; export GB_REF +GB_BASE='{{ with $version.base }}{{ . }}{{ end }}'; export GB_BASE +GB_REF='{{ with $version.ref }}{{ . }}{{ end }}'; export GB_REF -GB_DOCKERFILE='{{ .Env.GB_VERSION }}/DockerfileRuntime'; export GB_DOCKERFILE -GB_JSONFILE='{{ .Env.GB_VERSION }}/gearbox.json'; export GB_JSONFILE +GB_DOCKERFILE='versions/{{ .Env.GB_VERSION }}/DockerfileRuntime'; export GB_DOCKERFILE +# GB_JSONFILE='{{ .Env.GB_VERSION }}/gearbox.json'; export GB_JSONFILE GB_JSON='{{ .JsonString }}'; export GB_JSON -GB_IMAGENAME='{{ .Json.organization }}/{{ .Json.name }}'; export GB_IMAGENAME -GB_IMAGEVERSION='{{ .Json.organization }}/{{ .Json.name }}:{{ .Env.GB_VERSION }}'; export GB_IMAGEVERSION -GB_IMAGEMAJORVERSION='{{ .Json.organization }}/{{ .Json.name }}:{{ $version.majorversion }}'; export GB_IMAGEMAJORVERSION +GB_IMAGENAME='{{ .Json.meta.organization }}/{{ .Json.meta.name }}'; export GB_IMAGENAME +GB_IMAGEVERSION='{{ .Json.meta.organization }}/{{ .Json.meta.name }}:{{ .Env.GB_VERSION }}'; export GB_IMAGEVERSION +GB_IMAGEMAJORVERSION='{{ .Json.meta.organization }}/{{ .Json.meta.name }}:{{ $version.majorversion }}'; export GB_IMAGEMAJORVERSION -GB_CONTAINERVERSION='{{ .Json.name }}-{{ .Env.GB_VERSION }}'; export GB_CONTAINERVERSION -GB_CONTAINERMAJORVERSION='{{ .Json.name }}-{{ $version.majorversion }}'; export GB_CONTAINERMAJORVERSION +GB_CONTAINERVERSION='{{ .Json.meta.name }}-{{ .Env.GB_VERSION }}'; export GB_CONTAINERVERSION +GB_CONTAINERMAJORVERSION='{{ with $version.majorversion }}{{ $.Json.meta.name }}-{{ . }}{{ end }}'; export GB_CONTAINERMAJORVERSION {{- if eq $version.ref "base" }} GEARBOX_BASE_VERSION="{{ .Env.GB_VERSION }}"; export GEARBOX_BASE_VERSION diff --git a/TEMPLATE/version/DockerfileRuntime.tmpl b/TEMPLATE/version/DockerfileRuntime.tmpl index 743eb75..c6d1c42 100644 --- a/TEMPLATE/version/DockerfileRuntime.tmpl +++ b/TEMPLATE/version/DockerfileRuntime.tmpl @@ -1,4 +1,4 @@ -{{- $version := FindInMap .Json.versions .Env.VERSION }} +{{- $version := FindInMap .Json.versions .Env.GB_VERSION }} {{- if not $version }} ################################################################################ # No version @@ -7,7 +7,7 @@ ################################################################################ # No base -{{- else if not .Json.name }} +{{- else if not .Json.meta.name }} ################################################################################ # No name @@ -15,9 +15,9 @@ ################################################################################ # {{ .CreationWarning }} # {{ .CreationInfo }} -# Plain Docker container for docker-{{ .Json.name }} based off {{ $version.base }} +# Plain Docker container for docker-{{ .Json.meta.name }} based off {{ $version.base }} -ARG VERSION={{ .Env.VERSION }} +ARG VERSION={{ .Env.GB_VERSION }} # 1. First reference the gearbox-base image. FROM {{ $version.base }} @@ -26,15 +26,26 @@ ARG GEARBOX_ENTRYPOINT ARG GEARBOX_ENTRYPOINT_ARGS # 2. Set up env variables. -MAINTAINER {{ with .Json.maintainer }}{{ . }}{{ else }}Unknown{{ end }} -ENV GEARBOX_CONTAINER_NAME "docker-{{ .Json.name }}" +MAINTAINER {{ with .Json.meta.maintainer }}{{ . }}{{ else }}Unknown{{ end }} +ENV GEARBOX_CONTAINER_NAME "docker-{{ .Json.meta.name }}" ENV GEARBOX_CONTAINER_VERSION ${VERSION} ENV GEARBOX_ENTRYPOINT ${GEARBOX_ENTRYPOINT} ENV GEARBOX_ENTRYPOINT_ARGS ${GEARBOX_ENTRYPOINT_ARGS} LABEL gearbox.json='{{ .JsonString }}' -LABEL gearbox.version='{{ .Env.VERSION }}' -ENV GEARBOX_VERSION "{{ .Env.VERSION }}" -{{- range $k, $v := .Json }} +LABEL gearbox.version='{{ .Env.GB_VERSION }}' +ENV GEARBOX_VERSION "{{ .Env.GB_VERSION }}" +{{- range $k, $v := .Json.meta }} + {{- if eq $k "versions" }} +# SKIP {{ $k }} + {{- else if eq $k "env" }} +# SKIP {{ $k }} + {{- else }} +LABEL container.{{ $k }}="{{ $v }}" +ENV GEARBOX_{{ $k | ToUpper }} "{{ $v }}" + {{- end }} +{{- end }} + +{{- range $k, $v := .Json.build }} {{- if eq $k "versions" }} # SKIP {{ $k }} {{- else if eq $k "env" }} @@ -50,23 +61,22 @@ LABEL container.{{ $k }}="{{ $v }}" ENV GEARBOX_{{ $k | ToUpper }} "{{ $v }}" {{- end }} -{{- range $k, $v := .Json.env }} +{{- range $k, $v := .Json.build.env }} ENV {{ $k | ToUpper }} "{{ $v }}" {{- end }} # 3. Now copy the local files specific to this container. COPY build /etc/gearbox -COPY ${VERSION}/build /etc/gearbox -COPY ${VERSION}/gearbox.json /etc/gearbox/gearbox.json +COPY versions/${VERSION}/build /etc/gearbox # 4. Run the base.sh script to set everything up. RUN /bin/sh /etc/gearbox/build/base.sh -# 5. Run the {{ .Json.name }}.sh script to set everything up. -RUN /bin/sh /etc/gearbox/build/{{ .Json.name }}.sh +# 5. Run the {{ .Json.meta.name }}.sh script to set everything up. +RUN /bin/sh /etc/gearbox/build/{{ .Json.meta.name }}.sh # 6. Expose ports. -EXPOSE 22 9970 {{ range .Json.ports }}{{ . }} {{ end }} +EXPOSE 22 9970 {{ range .Json.build.ports }}{{ . }} {{ end }} WORKDIR /home/gearbox/projects # END @@ -76,9 +86,9 @@ WORKDIR /home/gearbox/projects ################################################################################ # {{ .CreationWarning }} # {{ .CreationInfo }} -# Base Reference Docker container for docker-{{ .Json.name }} based off {{ $version.base }} +# Base Reference Docker container for docker-{{ .Json.meta.name }} based off {{ $version.base }} -ARG VERSION={{ .Env.VERSION }} +ARG VERSION={{ .Env.GB_VERSION }} # 1. First reference the gearbox-base image. FROM {{ $version.base }} @@ -87,16 +97,26 @@ ARG VERSION # ARG GEARBOX_ENTRYPOINT_ARGS # 2. Set up env variables. -MAINTAINER {{ with .Json.maintainer }}{{ . }}{{ else }}Unknown{{ end }} -ENV GEARBOX_CONTAINER_NAME "docker-{{ .Json.name }}" +MAINTAINER {{ with .Json.meta.maintainer }}{{ . }}{{ else }}Unknown{{ end }} +ENV GEARBOX_CONTAINER_NAME "docker-{{ .Json.meta.name }}" ENV GEARBOX_CONTAINER_VERSION ${VERSION} LABEL gearbox.json='{{ .JsonString }}' -LABEL gearbox.version='{{ .Env.VERSION }}' -ENV GEARBOX_VERSION "{{ .Env.VERSION }}" -ENV GEARBOX_BASE_VERSION "{{ .Env.VERSION }}" +LABEL gearbox.version='{{ .Env.GB_VERSION }}' +ENV GEARBOX_VERSION "{{ .Env.GB_VERSION }}" +ENV GEARBOX_BASE_VERSION "{{ .Env.GB_VERSION }}" ENV GEARBOX_BASE_REF "{{ $version.ref }}" +{{- range $k, $v := .Json.meta }} + {{- if eq $k "versions" }} +# SKIP {{ $k }} + {{- else if eq $k "env" }} +# SKIP {{ $k }} + {{- else }} +LABEL container.{{ $k }}="{{ $v }}" +ENV GEARBOX_{{ $k | ToUpper }} "{{ $v }}" + {{- end }} +{{- end }} -{{- range $k, $v := .Json }} +{{- range $k, $v := .Json.build }} {{- if eq $k "versions" }} # SKIP {{ $k }} {{- else if eq $k "env" }} @@ -112,20 +132,19 @@ LABEL container.{{ $k }}="{{ $v }}" ENV GEARBOX_{{ $k | ToUpper }} "{{ $v }}" {{- end }} -{{- range $k, $v := .Json.env }} +{{- range $k, $v := .Json.build.env }} ENV {{ $k | ToUpper }} "{{ $v }}" {{- end }} # 3. Now copy the local files specific to this container. COPY build /etc/gearbox -COPY ${VERSION}/build /etc/gearbox -COPY ${VERSION}/gearbox.json /etc/gearbox/gearbox.json +COPY versions/${VERSION}/build /etc/gearbox # 4. Run the base.sh script to set everything up. RUN /bin/sh /etc/gearbox/build/base.sh # 6. Expose ports. -EXPOSE {{ range .Json.ports }}{{ . }} {{ end }} +EXPOSE {{ range .Json.build.ports }}{{ . }} {{ end }} WORKDIR /home/gearbox/projects USER root @@ -139,9 +158,9 @@ CMD ["/init"] ################################################################################ # {{ .CreationWarning }} # {{ .CreationInfo }} -# Referenced Docker container for docker-{{ .Json.name }} based off {{ $version.base }} with {{ $version.ref }} overlayed. +# Referenced Docker container for docker-{{ .Json.meta.name }} based off {{ $version.base }} with {{ $version.ref }} overlayed. -ARG VERSION={{ .Env.VERSION }} +ARG VERSION={{ .Env.GB_VERSION }} # 1. First reference the gearbox-base image. FROM {{ $version.base }} as gearbox-base @@ -157,15 +176,26 @@ USER root COPY --from=gearbox-base /etc/gearbox /etc/gearbox # 4. Set up env variables. -MAINTAINER {{ with .Json.maintainer }}{{ . }}{{ else }}Unknown{{ end }} -ENV GEARBOX_CONTAINER_NAME "docker-{{ .Json.name }}" +MAINTAINER {{ with .Json.meta.maintainer }}{{ . }}{{ else }}Unknown{{ end }} +ENV GEARBOX_CONTAINER_NAME "docker-{{ .Json.meta.name }}" ENV GEARBOX_CONTAINER_VERSION ${VERSION} ENV GEARBOX_ENTRYPOINT ${GEARBOX_ENTRYPOINT} ENV GEARBOX_ENTRYPOINT_ARGS ${GEARBOX_ENTRYPOINT_ARGS} LABEL gearbox.json='{{ .JsonString }}' -LABEL gearbox.version='{{ .Env.VERSION }}' -ENV GEARBOX_VERSION "{{ .Env.VERSION }}" -{{- range $k, $v := .Json }} +LABEL gearbox.version='{{ .Env.GB_VERSION }}' +ENV GEARBOX_VERSION "{{ .Env.GB_VERSION }}" +{{- range $k, $v := .Json.meta }} + {{- if eq $k "versions" }} +# SKIP {{ $k }} + {{- else if eq $k "env" }} +# SKIP {{ $k }} + {{- else }} +LABEL container.{{ $k }}="{{ $v }}" +ENV GEARBOX_{{ $k | ToUpper }} "{{ $v }}" + {{- end }} +{{- end }} + +{{- range $k, $v := .Json.build }} {{- if eq $k "versions" }} # SKIP {{ $k }} {{- else if eq $k "env" }} @@ -181,25 +211,24 @@ LABEL container.{{ $k }}="{{ $v }}" ENV GEARBOX_{{ $k | ToUpper }} "{{ $v }}" {{- end }} -{{- range $k, $v := .Json.env }} +{{- range $k, $v := .Json.build.env }} ENV {{ $k | ToUpper }} "{{ $v }}" {{- end }} # 5. Now copy the local files specific to this container. COPY build /etc/gearbox -COPY ${VERSION}/build /etc/gearbox -COPY ${VERSION}/gearbox.json /etc/gearbox/gearbox.json +COPY versions/${VERSION}/build /etc/gearbox # 6. Run the base.sh script to set everything up. RUN /bin/sh /etc/gearbox/build/base.sh -# 7. Run the {{ .Json.name }}.sh script to set everything up. -RUN /bin/sh /etc/gearbox/build/{{ .Json.name }}.sh +# 7. Run the {{ .Json.meta.name }}.sh script to set everything up. +RUN /bin/sh /etc/gearbox/build/{{ .Json.meta.name }}.sh # 8. Expose ports. -EXPOSE 22 9970 {{ range .Json.ports }}{{ . }} {{ end }} +EXPOSE 22 9970 {{ range .Json.build.ports }}{{ . }} {{ end }} WORKDIR /home/gearbox/projects -{{ with .Json.inner }}{{ . }}{{ end }} +{{ with .Json.build.inner }}{{ . }}{{ end }} CMD ["/init"] # END diff --git a/TEMPLATE/version/build/unit-tests/JSON_NAME/02-release.sh.tmpl b/TEMPLATE/version/build/unit-tests/JSON_NAME/02-release.sh.tmpl index c17f9ae..0130abd 100644 --- a/TEMPLATE/version/build/unit-tests/JSON_NAME/02-release.sh.tmpl +++ b/TEMPLATE/version/build/unit-tests/JSON_NAME/02-release.sh.tmpl @@ -1,8 +1,8 @@ #!/bin/bash # {{ $.CreationInfo }} -p_info "{{ .Json.name }}-{{ .Env.VERSION }}" "Release test started." +p_info "{{ .Json.meta.name }}-{{ .Env.VERSION }}" "Release test started." ps -eaf -p_info "{{ .Json.name }}-{{ .Env.VERSION }}" "Release test finished." +p_info "{{ .Json.meta.name }}-{{ .Env.VERSION }}" "Release test finished." diff --git a/TEMPLATE/version/logs/.keep b/TEMPLATE/version/logs/.keep deleted file mode 100644 index e69de29..0000000 diff --git a/bin/TemplateUpdate.sh b/bin/TemplateUpdate.sh index 78cb255..3d1aa83 100755 --- a/bin/TemplateUpdate.sh +++ b/bin/TemplateUpdate.sh @@ -63,6 +63,8 @@ then cp TEMPLATE/release.yml .github/workflows/ rm -rf docker-template.tgz docker-template/ echo "# Gearbox[docker-template]: Done." + + ${DIR}/JsonToConfig -template ./TEMPLATE/README.md.tmpl -json gearbox.json -out README.md else echo "# Gearbox[docker-template]: Cannot find docker-template repository." fi diff --git a/bin/_Functions.sh b/bin/_Functions.sh index 69acd60..5a53fc0 100755 --- a/bin/_Functions.sh +++ b/bin/_Functions.sh @@ -20,14 +20,16 @@ GB_JSONFILE="${GB_BASEDIR}/gearbox.json" if [ -f "${GB_JSONFILE}" ] then - GB_VERSIONS="$(${GB_BINFILE} -json ${GB_JSONFILE} -template-string '{{ range $version, $value := .Json.versions }}{{ $version }} {{ end }}')" + GB_VERSIONS="$(${GB_BINFILE} -json ${GB_JSONFILE} -template-string '{{ range $version, $value := .Json.versions }}{{ if ne $version "" }}{{ $version }}{{ end }} {{ end }}')" GB_VERSIONS="$(echo ${GB_VERSIONS})" # Easily remove CR - GB_IMAGENAME="$(${GB_BINFILE} -json ${GB_JSONFILE} -template-string '{{ .Json.organization }}/{{ .Json.name }}')" + GB_IMAGENAME="$(${GB_BINFILE} -json ${GB_JSONFILE} -template-string '{{ .Json.meta.organization }}/{{ .Json.meta.name }}')" - GB_NAME="$(${GB_BINFILE} -json ${GB_JSONFILE} -template-string '{{ .Json.name }}')" + GB_NAME="$(${GB_BINFILE} -json ${GB_JSONFILE} -template-string '{{ .Json.meta.name }}')" fi +GB_BASE="$(${GB_BINFILE} -json gearbox.json -template-string '{{ .Json.build.base }}')" + GITBIN="$(which git)" GB_GITURL="$(${GITBIN} config --get remote.origin.url)" if [ "${GB_GITURL}" == "" ] @@ -87,21 +89,33 @@ _getVersions() { ################################################################################ _listVersions() { echo " all - All versions" - ${GB_BINFILE} -json ${GB_JSONFILE} -template-string '{{ range $version, $value := .Json.versions }}\t{{ $version }} - {{ $.Json.organization }}/{{ $.Json.name }}:{{ $version }}\n{{ end }}' + ${GB_BINFILE} -json ${GB_JSONFILE} -template-string '{{ range $version, $value := .Json.versions }}{{ if ne $version "" }}\t{{ $version }} - {{ $.Json.meta.organization }}/{{ $.Json.meta.name }}:{{ $version }}\n{{ end }}{{ end }}' echo "" } ################################################################################ gb_getenv() { - VERSION_DIR="$1" - if [ -f "${VERSION_DIR}/.env.tmpl" ] + GB_VERDIR="${GB_BASEDIR}/versions/$1" + export GB_VERDIR + + if [ -f "TEMPLATE/version/.env.tmpl" ] then - # DIR="$(./bin/JsonToConfig-${ARCH} -json "${GB_JSONFILE}" -template-string '{{ .Json.version }}')" - ${GB_BINFILE} -json "${GB_JSONFILE}" -template "${VERSION_DIR}/.env.tmpl" -out "${VERSION_DIR}/.env" + ${GB_BINFILE} -json "${GB_JSONFILE}" -template "TEMPLATE/version/.env.tmpl" -out "${GB_VERDIR}/.env" fi + . "${GB_VERDIR}/.env" +} + + +################################################################################ +gb_getdockerfile() { + GB_VERDIR="${GB_BASEDIR}/versions/$1" + export GB_VERDIR - . "${VERSION_DIR}/.env" + if [ -f "TEMPLATE/version/DockerfileRuntime.tmpl" ] + then + ${GB_BINFILE} -json "${GB_JSONFILE}" -template "TEMPLATE/version/DockerfileRuntime.tmpl" -out "${GB_VERDIR}/DockerfileRuntime" + fi } @@ -162,7 +176,7 @@ gb_init() { gb_create-build ${GB_JSONFILE} gb_create-version ${GB_JSONFILE} - ${DIR}/JsonToConfig-$(uname -s) -json "${GB_JSONFILE}" -template TEMPLATE/README.md.tmpl -out README.md + # ${DIR}/JsonToConfig-$(uname -s) -json "${GB_JSONFILE}" -template TEMPLATE/README.md.tmpl -out README.md return 0 } @@ -174,20 +188,27 @@ gb_create-build() { then return 1 fi - p_ok "${FUNCNAME[0]}" "Creating build directory." if [ -d build ] then - p_warn "${FUNCNAME[0]}" "Directory \"build\" already exists." - return 0 + p_ok "${FUNCNAME[0]}" "Updating build directory." + else + p_ok "${FUNCNAME[0]}" "Creating build directory." + cp -i TEMPLATE/build.sh.tmpl . + ${GB_BINFILE} -json ${GB_JSONFILE} -create build.sh.tmpl -shell + rm -f build.sh.tmpl build.sh fi - cp -i TEMPLATE/build.sh.tmpl . - ${GB_BINFILE} -json ${GB_JSONFILE} -create build.sh.tmpl -shell - rm -f build.sh.tmpl build.sh - ${GB_BINFILE} -template ./TEMPLATE/README.md.tmpl -json ${GB_JSONFILE} -out README.md + cp ./TEMPLATE/Makefile . + if [ "${GB_BASE}" == "true" ] + then + cp "${GB_JSONFILE}" build/ + else + cp "${GB_JSONFILE}" "build/gearbox-${GB_NAME}.json" + fi + return 0 } @@ -200,22 +221,28 @@ gb_create-version() { fi p_ok "${FUNCNAME[0]}" "Creating version directory for versions: ${GB_VERSIONS}" - - ${GB_BINFILE} -template ./TEMPLATE/README.md.tmpl -json ${GB_JSONFILE} -out README.md - for GB_VERSION in ${GB_VERSIONS} do - if [ -d ${GB_VERSION} ] + gb_getenv ${GB_VERSION} + + + if [ -d ${GB_VERDIR} ] then - p_warn "${FUNCNAME[0]}" "Directory \"${GB_VERSION}\" already exists." + p_info "${FUNCNAME[0]}" "Updating version directory \"${GB_VERSION}\"." + ${GB_BINFILE} -json ${GB_JSONFILE} -template ./TEMPLATE/version/DockerfileRuntime.tmpl -out "${GB_VERDIR}/DockerfileRuntime" + ${GB_BINFILE} -json ${GB_JSONFILE} -template ./TEMPLATE/version/.env.tmpl -out "${GB_VERDIR}/.env" + rm -f "${GB_VERDIR}/gearbox.json" + else p_info "${FUNCNAME[0]}" "Creating version directory \"${GB_VERSION}\"." cp -i TEMPLATE/version.sh.tmpl . ${GB_BINFILE} -json ${GB_JSONFILE} -create version.sh.tmpl -shell - rm -f version.sh.tmpl version.sh + rm -f version.sh.tmpl version.sh "${GB_VERDIR}/gearbox.json" fi done + ${GB_BINFILE} -json ${GB_JSONFILE} -template ./TEMPLATE/README.md.tmpl -out README.md + return 0 } @@ -235,7 +262,7 @@ gb_clean() { p_info "${GB_IMAGEVERSION}" "Removing logs." - rm -f ${GB_VERSION}/logs/*.log + rm -f ${GB_VERDIR}/logs/*.log gb_checkContainer ${GB_CONTAINERVERSION} @@ -280,6 +307,18 @@ gb_clean() { p_warn "${GB_IMAGEVERSION}" "Image already removed." ;; esac + + + gb_checkImage ${GB_IMAGENAME}:latest + case ${STATE} in + 'PRESENT') + p_info "${GB_IMAGENAME}:latest" "Removing image." + docker image rm -f ${GB_IMAGENAME}:latest + ;; + *) + p_warn "${GB_IMAGENAME}:latest" "Image already removed." + ;; + esac done return 0 @@ -298,9 +337,15 @@ gb_build() { for GB_VERSION in ${GB_VERSIONS} do gb_getenv ${GB_VERSION} + gb_getdockerfile ${GB_VERSION} + - # LOGFILE="${GB_VERSION}/logs/$(date +'%Y%m%d-%H%M%S').log" - LOGFILE="${GB_VERSION}/logs/build.log" + # LOGFILE="${GB_VERDIR}/logs/$(date +'%Y%m%d-%H%M%S').log" + LOGFILE="${GB_VERDIR}/logs/build.log" + if [ ! -d "${GB_VERDIR}/logs/" ] + then + mkdir -p "${GB_VERDIR}/logs" + fi if [ "${GB_REF}" == "base" ] then @@ -325,14 +370,19 @@ gb_build() { script ${LOG_ARGS} ${LOGFILE} \ docker build -t ${GB_IMAGENAME}:${GB_VERSION} -f ${GB_DOCKERFILE} --build-arg GEARBOX_ENTRYPOINT --build-arg GEARBOX_ENTRYPOINT_ARGS ${DOCKER_ARGS} . p_info "${GB_IMAGENAME}:${GB_VERSION}" "Log file saved to \"${LOGFILE}\"" + else + docker build -t ${GB_IMAGENAME}:${GB_VERSION} -f ${GB_DOCKERFILE} --build-arg GEARBOX_ENTRYPOINT --build-arg GEARBOX_ENTRYPOINT_ARGS ${DOCKER_ARGS} . fi - docker build -t ${GB_IMAGENAME}:${GB_VERSION} -f ${GB_DOCKERFILE} --build-arg GEARBOX_ENTRYPOINT --build-arg GEARBOX_ENTRYPOINT_ARGS ${DOCKER_ARGS} . - if [ "${GB_MAJORVERSION}" != "" ] then docker tag ${GB_IMAGENAME}:${GB_VERSION} ${GB_IMAGENAME}:${GB_MAJORVERSION} fi + + if [ "${GB_LATEST}" == "true" ] + then + docker tag ${GB_IMAGENAME}:${GB_VERSION} ${GB_IMAGENAME}:latest + fi done return 0 @@ -457,10 +507,10 @@ gb_logs() { do gb_getenv ${GB_VERSION} - if [ -f "${GB_VERSION}/logs/${GB_NAME}.log" ] + if [ -f "${GB_VERDIR}/logs/build.log" ] then p_info "${GB_IMAGEMAJORVERSION}" "Showing logs." - script -dp "${GB_VERSION}/logs/${GB_NAME}.log" | less -SinR + script -dp "${GB_VERDIR}/logs/build.log" | less -SinR else p_warn "${GB_IMAGEMAJORVERSION}" "No logs." fi @@ -521,6 +571,12 @@ gb_dockerhub() { docker push ${GB_IMAGEVERSION} p_info "${GB_IMAGEMAJORVERSION}" "Pushing image to DockerHub." docker push ${GB_IMAGEMAJORVERSION} + + if [ "${GB_LATEST}" == "true" ] + then + p_info "${GB_IMAGENAME}:latest" "Pushing image to DockerHub." + docker push "${GB_IMAGENAME}:latest" + fi done return 0 @@ -570,9 +626,12 @@ gb_release() { fi p_ok "${FUNCNAME[0]}" "#### Releasing for versions: ${GB_VERSIONS}" - gb_clean ${GB_VERSIONS} && \ - gb_build ${GB_VERSIONS} && \ - gb_test ${GB_VERSIONS} + for GB_VERSION in ${GB_VERSIONS} + do + gb_clean ${GB_VERSION} && \ + gb_build ${GB_VERSION} && \ + gb_test ${GB_VERSION} + done return 0 } @@ -805,8 +864,12 @@ gb_test() { p_info "${GB_CONTAINERVERSION}" "Running unit-tests." PORT="$(docker port ${GB_CONTAINERVERSION} 22/tcp | sed 's/0.0.0.0://')" - # LOGFILE="${GB_VERSION}/logs/$(date +'%Y%m%d-%H%M%S').log" - LOGFILE="${GB_VERSION}/logs/test.log" + # LOGFILE="${GB_VERDIR}/logs/$(date +'%Y%m%d-%H%M%S').log" + LOGFILE="${GB_VERDIR}/logs/test.log" + if [ ! -d "${GB_VERDIR}/logs/" ] + then + mkdir -p "${GB_VERDIR}/logs" + fi #if [ "${GITHUB_ACTIONS}" == "" ] #then diff --git a/bin/gb-launch b/bin/gb-launch new file mode 100755 index 0000000..748ff3b --- /dev/null +++ b/bin/gb-launch @@ -0,0 +1,12 @@ +#!/bin/bash + +CONTAINER="$(basename $0)" +DIR="$(dirname $0)" +EXEC="${DIR}/gb-launch-$(uname -s)" +if [ ! -x "${EXEC}" ] +then + echo "Gearbox: Architecture not supported, ${EXEC}." + exit +fi + +exec "${EXEC}" -gb-name ${CONTAINER} "$@" diff --git a/bin/gb-launch-Darwin b/bin/gb-launch-Darwin new file mode 100755 index 0000000..498973f Binary files /dev/null and b/bin/gb-launch-Darwin differ diff --git a/bin/gb-launch-Linux b/bin/gb-launch-Linux new file mode 100755 index 0000000..8b2ca8c Binary files /dev/null and b/bin/gb-launch-Linux differ diff --git a/bin/golang b/bin/golang new file mode 120000 index 0000000..6f23393 --- /dev/null +++ b/bin/golang @@ -0,0 +1 @@ +gb-launch \ No newline at end of file diff --git a/bin/terminus b/bin/terminus new file mode 120000 index 0000000..6f23393 --- /dev/null +++ b/bin/terminus @@ -0,0 +1 @@ +gb-launch \ No newline at end of file diff --git a/bin/wpcli b/bin/wpcli new file mode 120000 index 0000000..6f23393 --- /dev/null +++ b/bin/wpcli @@ -0,0 +1 @@ +gb-launch \ No newline at end of file diff --git a/build/gearbox-nginx.json b/build/gearbox-nginx.json index f6d19b3..6a0f9bf 100644 --- a/build/gearbox-nginx.json +++ b/build/gearbox-nginx.json @@ -1,45 +1,60 @@ { - "state": "production", - "organization": "gearboxworks", - "name": "nginx", - "maintainer": "Gearbox Team ", - "class": "webserver", - "network": "--network gearboxnet", - "ports": [ - "80", - "443" - ], - "volumes": "", - "restart": "--restart no", - "run": "", - "args": "", - "env": { + "schema": "gear-1", + "meta": { + "state": "production", + "organization": "gearboxworks", + "name": "nginx", + "label": "Nginx", + "maintainer": "Gearbox Team ", + "class": "webserver", + "refurl": "unknown" + }, + "build": { + "ports": { + + "http": "80", + "https": "443" + }, + "run": "/usr/sbin/nginx", + "args": "", + "env": { + + }, + "network": "--network gearboxnet", + "volumes": "", + "restart": "--restart no" + }, + "run": { + }, + "project": { + }, + "extensions": { }, "versions": { - "1.15.9": { - "majorversion": "1.15", - "latest": true, - "ref": "nginx:1.15.9-alpine", - "base": "gearboxworks/gearbox-base:alpine-3.9" + "1.12.2": { + "majorversion": "1.12", + "latest": false, + "ref": "nginx:1.12.2-alpine", + "base": "gearboxworks/gearbox-base:alpine-3.5" + }, + "1.13.12": { + "majorversion": "1.13", + "latest": false, + "ref": "nginx:1.13.12-alpine", + "base": "gearboxworks/gearbox-base:alpine-3.7" }, "1.14.2": { "majorversion": "1.14", - "latest": true, + "latest": false, "ref": "nginx:1.14.2-alpine", "base": "gearboxworks/gearbox-base:alpine-3.8" }, - "1.13.12": { - "majorversion": "1.13", + "1.15.9": { + "majorversion": "1.15", "latest": true, - "ref": "nginx:1.13.12-alpine", - "base": "gearboxworks/gearbox-base:alpine-3.7" + "ref": "nginx:1.15.9-alpine", + "base": "gearboxworks/gearbox-base:alpine-3.9" }, - "1.12.2": { - "majorversion": "1.12", - "latest": true, - "ref": "nginx:1.12.2-alpine", - "base": "gearboxworks/gearbox-base:alpine-3.5" - } + "": {} } } - diff --git a/gearbox.json b/gearbox.json index b08096f..6a0f9bf 100644 --- a/gearbox.json +++ b/gearbox.json @@ -1,32 +1,41 @@ { - "state": "production", - "organization": "gearboxworks", - "name": "nginx", - "maintainer": "Gearbox Team ", - "class": "webserver", - "network": "--network gearboxnet", - "ports": [ - "80", - "443" - ], - "volumes": "", - "restart": "--restart no", - "run": "/usr/sbin/nginx", - "args": "", - "env": { + "schema": "gear-1", + "meta": { + "state": "production", + "organization": "gearboxworks", + "name": "nginx", + "label": "Nginx", + "maintainer": "Gearbox Team ", + "class": "webserver", + "refurl": "unknown" }, - "versions": { - "1.15.9": { - "majorversion": "1.15", - "latest": true, - "ref": "nginx:1.15.9-alpine", - "base": "gearboxworks/gearbox-base:alpine-3.9" + "build": { + "ports": { + + "http": "80", + "https": "443" }, - "1.14.2": { - "majorversion": "1.14", + "run": "/usr/sbin/nginx", + "args": "", + "env": { + + }, + "network": "--network gearboxnet", + "volumes": "", + "restart": "--restart no" + }, + "run": { + }, + "project": { + }, + "extensions": { + }, + "versions": { + "1.12.2": { + "majorversion": "1.12", "latest": false, - "ref": "nginx:1.14.2-alpine", - "base": "gearboxworks/gearbox-base:alpine-3.8" + "ref": "nginx:1.12.2-alpine", + "base": "gearboxworks/gearbox-base:alpine-3.5" }, "1.13.12": { "majorversion": "1.13", @@ -34,12 +43,18 @@ "ref": "nginx:1.13.12-alpine", "base": "gearboxworks/gearbox-base:alpine-3.7" }, - "1.12.2": { - "majorversion": "1.12", + "1.14.2": { + "majorversion": "1.14", "latest": false, - "ref": "nginx:1.12.2-alpine", - "base": "gearboxworks/gearbox-base:alpine-3.5" - } + "ref": "nginx:1.14.2-alpine", + "base": "gearboxworks/gearbox-base:alpine-3.8" + }, + "1.15.9": { + "majorversion": "1.15", + "latest": true, + "ref": "nginx:1.15.9-alpine", + "base": "gearboxworks/gearbox-base:alpine-3.9" + }, + "": {} } } - diff --git a/1.12.2/gearbox.json b/gearbox.json-OLD similarity index 100% rename from 1.12.2/gearbox.json rename to gearbox.json-OLD diff --git a/versions/1.12.2/.env b/versions/1.12.2/.env new file mode 100644 index 0000000..9eb3df0 --- /dev/null +++ b/versions/1.12.2/.env @@ -0,0 +1,33 @@ + +GB_STATE='production'; export GB_STATE +GB_ORGANIZATION='gearboxworks'; export GB_ORGANIZATION +GB_NAME='nginx'; export GB_NAME +GB_MAINTAINER='Gearbox Team '; export GB_MAINTAINER +GB_VERSION='1.12.2'; export GB_VERSION +GB_MAJORVERSION='1.12'; export GB_MAJORVERSION +GB_LATEST=''; export GB_LATEST +GB_CLASS='webserver'; export GB_CLASS +GB_NETWORK='--network gearboxnet'; export GB_NETWORK + +GB_PORTS='80 443 '; export GB_PORTS +GB_VOLUMES=''; export GB_VOLUMES +GB_RESTART='--restart no'; export GB_RESTART +GB_RUN='/usr/sbin/nginx'; export GB_RUN +GB_ARGS=''; export GB_ARGS +GB_ENV=''; export GB_ENV + +GB_BASE='gearboxworks/gearbox-base:alpine-3.5'; export GB_BASE +GB_REF='nginx:1.12.2-alpine'; export GB_REF + +GB_DOCKERFILE='versions/1.12.2/DockerfileRuntime'; export GB_DOCKERFILE +# GB_JSONFILE='1.12.2/gearbox.json'; export GB_JSONFILE +GB_JSON='{"schema": "gear-1","meta": {"state": "production","organization": "gearboxworks","name": "nginx","label": "Nginx","maintainer": "Gearbox Team ","class": "webserver","refurl": "unknown"},"build": {"ports": {"http": "80","https": "443"},"run": "/usr/sbin/nginx","args": "","env": {},"network": "--network gearboxnet","volumes": "","restart": "--restart no"},"run": {},"project": {},"extensions": {},"versions": {"1.12.2": {"majorversion": "1.12","latest": false,"ref": "nginx:1.12.2-alpine","base": "gearboxworks/gearbox-base:alpine-3.5"},"1.13.12": {"majorversion": "1.13","latest": false,"ref": "nginx:1.13.12-alpine","base": "gearboxworks/gearbox-base:alpine-3.7"},"1.14.2": {"majorversion": "1.14","latest": false,"ref": "nginx:1.14.2-alpine","base": "gearboxworks/gearbox-base:alpine-3.8"},"1.15.9": {"majorversion": "1.15","latest": true,"ref": "nginx:1.15.9-alpine","base": "gearboxworks/gearbox-base:alpine-3.9"},"": {}}}'; export GB_JSON + +GB_IMAGENAME='gearboxworks/nginx'; export GB_IMAGENAME +GB_IMAGEVERSION='gearboxworks/nginx:1.12.2'; export GB_IMAGEVERSION +GB_IMAGEMAJORVERSION='gearboxworks/nginx:1.12'; export GB_IMAGEMAJORVERSION + +GB_CONTAINERVERSION='nginx-1.12.2'; export GB_CONTAINERVERSION +GB_CONTAINERMAJORVERSION='nginx-1.12'; export GB_CONTAINERMAJORVERSION + +OS_TYPE="$(uname -s)"; export OS_TYPE diff --git a/1.12.2/DockerfileRuntime b/versions/1.12.2/DockerfileRuntime similarity index 66% rename from 1.12.2/DockerfileRuntime rename to versions/1.12.2/DockerfileRuntime index df5b004..4dc803f 100644 --- a/1.12.2/DockerfileRuntime +++ b/versions/1.12.2/DockerfileRuntime @@ -1,8 +1,7 @@ - ################################################################################ # WARNING: This file has been auto-generated. DO NOT EDIT: WARNING -# Created on 2020-03-14T02:33:42+1100, using template:DockerfileRuntime.tmpl and json:gearbox.json +# Created on 2020-04-01T12:01:58+1100, using template:DockerfileRuntime.tmpl and json:gearbox.json # Referenced Docker container for docker-nginx based off gearboxworks/gearbox-base:alpine-3.5 with nginx:1.12.2-alpine overlayed. ARG VERSION=1.12.2 @@ -26,34 +25,36 @@ ENV GEARBOX_CONTAINER_NAME "docker-nginx" ENV GEARBOX_CONTAINER_VERSION ${VERSION} ENV GEARBOX_ENTRYPOINT ${GEARBOX_ENTRYPOINT} ENV GEARBOX_ENTRYPOINT_ARGS ${GEARBOX_ENTRYPOINT_ARGS} -LABEL gearbox.json='{"state": "production","organization": "gearboxworks","name": "nginx","maintainer": "Gearbox Team ","class": "webserver","network": "--network gearboxnet","ports": ["80","443"],"volumes": "","restart": "--restart no","run": "/usr/sbin/nginx","args": "","env": {},"versions": {"1.15.9": {"majorversion": "1.15","latest": true,"ref": "nginx:1.15.9-alpine","base": "gearboxworks/gearbox-base:alpine-3.9"},"1.14.2": {"majorversion": "1.14","latest": false,"ref": "nginx:1.14.2-alpine","base": "gearboxworks/gearbox-base:alpine-3.8"},"1.13.12": {"majorversion": "1.13","latest": false,"ref": "nginx:1.13.12-alpine","base": "gearboxworks/gearbox-base:alpine-3.7"},"1.12.2": {"majorversion": "1.12","latest": false,"ref": "nginx:1.12.2-alpine","base": "gearboxworks/gearbox-base:alpine-3.5"}}}' +LABEL gearbox.json='{"schema": "gear-1","meta": {"state": "production","organization": "gearboxworks","name": "nginx","label": "Nginx","maintainer": "Gearbox Team ","class": "webserver","refurl": "unknown"},"build": {"ports": {"http": "80","https": "443"},"run": "/usr/sbin/nginx","args": "","env": {},"network": "--network gearboxnet","volumes": "","restart": "--restart no"},"run": {},"project": {},"extensions": {},"versions": {"1.12.2": {"majorversion": "1.12","latest": false,"ref": "nginx:1.12.2-alpine","base": "gearboxworks/gearbox-base:alpine-3.5"},"1.13.12": {"majorversion": "1.13","latest": false,"ref": "nginx:1.13.12-alpine","base": "gearboxworks/gearbox-base:alpine-3.7"},"1.14.2": {"majorversion": "1.14","latest": false,"ref": "nginx:1.14.2-alpine","base": "gearboxworks/gearbox-base:alpine-3.8"},"1.15.9": {"majorversion": "1.15","latest": true,"ref": "nginx:1.15.9-alpine","base": "gearboxworks/gearbox-base:alpine-3.9"},"": {}}}' LABEL gearbox.version='1.12.2' ENV GEARBOX_VERSION "1.12.2" -LABEL container.args="" -ENV GEARBOX_ARGS "" LABEL container.class="webserver" ENV GEARBOX_CLASS "webserver" -# SKIP env +LABEL container.label="Nginx" +ENV GEARBOX_LABEL "Nginx" LABEL container.maintainer="Gearbox Team " ENV GEARBOX_MAINTAINER "Gearbox Team " LABEL container.name="nginx" ENV GEARBOX_NAME "nginx" -LABEL container.network="--network gearboxnet" -ENV GEARBOX_NETWORK "--network gearboxnet" LABEL container.organization="gearboxworks" ENV GEARBOX_ORGANIZATION "gearboxworks" -LABEL container.ports="[80 443]" -ENV GEARBOX_PORTS "[80 443]" +LABEL container.refurl="unknown" +ENV GEARBOX_REFURL "unknown" +LABEL container.state="production" +ENV GEARBOX_STATE "production" +LABEL container.args="" +ENV GEARBOX_ARGS "" +# SKIP env +LABEL container.network="--network gearboxnet" +ENV GEARBOX_NETWORK "--network gearboxnet" +LABEL container.ports="map[http:80 https:443]" +ENV GEARBOX_PORTS "map[http:80 https:443]" LABEL container.restart="--restart no" ENV GEARBOX_RESTART "--restart no" LABEL container.run="/usr/sbin/nginx" ENV GEARBOX_RUN "/usr/sbin/nginx" -LABEL container.state="production" -ENV GEARBOX_STATE "production" -# SKIP versions LABEL container.volumes="" ENV GEARBOX_VOLUMES "" - LABEL container.base="gearboxworks/gearbox-base:alpine-3.5" ENV GEARBOX_BASE "gearboxworks/gearbox-base:alpine-3.5" LABEL container.latest="false" @@ -63,12 +64,9 @@ ENV GEARBOX_MAJORVERSION "1.12" LABEL container.ref="nginx:1.12.2-alpine" ENV GEARBOX_REF "nginx:1.12.2-alpine" - - # 5. Now copy the local files specific to this container. COPY build /etc/gearbox -COPY ${VERSION}/build /etc/gearbox -COPY ${VERSION}/gearbox.json /etc/gearbox/gearbox.json +COPY versions/${VERSION}/build /etc/gearbox # 6. Run the base.sh script to set everything up. RUN /bin/sh /etc/gearbox/build/base.sh @@ -84,5 +82,3 @@ CMD ["/init"] # END ################################################################################ - - diff --git a/1.12.2/build/unit-tests/nginx/02-release.sh b/versions/1.12.2/build/unit-tests/nginx/02-release.sh similarity index 100% rename from 1.12.2/build/unit-tests/nginx/02-release.sh rename to versions/1.12.2/build/unit-tests/nginx/02-release.sh diff --git a/versions/1.13.12/.env b/versions/1.13.12/.env new file mode 100644 index 0000000..532e8f8 --- /dev/null +++ b/versions/1.13.12/.env @@ -0,0 +1,33 @@ + +GB_STATE='production'; export GB_STATE +GB_ORGANIZATION='gearboxworks'; export GB_ORGANIZATION +GB_NAME='nginx'; export GB_NAME +GB_MAINTAINER='Gearbox Team '; export GB_MAINTAINER +GB_VERSION='1.13.12'; export GB_VERSION +GB_MAJORVERSION='1.13'; export GB_MAJORVERSION +GB_LATEST=''; export GB_LATEST +GB_CLASS='webserver'; export GB_CLASS +GB_NETWORK='--network gearboxnet'; export GB_NETWORK + +GB_PORTS='80 443 '; export GB_PORTS +GB_VOLUMES=''; export GB_VOLUMES +GB_RESTART='--restart no'; export GB_RESTART +GB_RUN='/usr/sbin/nginx'; export GB_RUN +GB_ARGS=''; export GB_ARGS +GB_ENV=''; export GB_ENV + +GB_BASE='gearboxworks/gearbox-base:alpine-3.7'; export GB_BASE +GB_REF='nginx:1.13.12-alpine'; export GB_REF + +GB_DOCKERFILE='versions/1.13.12/DockerfileRuntime'; export GB_DOCKERFILE +# GB_JSONFILE='1.13.12/gearbox.json'; export GB_JSONFILE +GB_JSON='{"schema": "gear-1","meta": {"state": "production","organization": "gearboxworks","name": "nginx","label": "Nginx","maintainer": "Gearbox Team ","class": "webserver","refurl": "unknown"},"build": {"ports": {"http": "80","https": "443"},"run": "/usr/sbin/nginx","args": "","env": {},"network": "--network gearboxnet","volumes": "","restart": "--restart no"},"run": {},"project": {},"extensions": {},"versions": {"1.12.2": {"majorversion": "1.12","latest": false,"ref": "nginx:1.12.2-alpine","base": "gearboxworks/gearbox-base:alpine-3.5"},"1.13.12": {"majorversion": "1.13","latest": false,"ref": "nginx:1.13.12-alpine","base": "gearboxworks/gearbox-base:alpine-3.7"},"1.14.2": {"majorversion": "1.14","latest": false,"ref": "nginx:1.14.2-alpine","base": "gearboxworks/gearbox-base:alpine-3.8"},"1.15.9": {"majorversion": "1.15","latest": true,"ref": "nginx:1.15.9-alpine","base": "gearboxworks/gearbox-base:alpine-3.9"},"": {}}}'; export GB_JSON + +GB_IMAGENAME='gearboxworks/nginx'; export GB_IMAGENAME +GB_IMAGEVERSION='gearboxworks/nginx:1.13.12'; export GB_IMAGEVERSION +GB_IMAGEMAJORVERSION='gearboxworks/nginx:1.13'; export GB_IMAGEMAJORVERSION + +GB_CONTAINERVERSION='nginx-1.13.12'; export GB_CONTAINERVERSION +GB_CONTAINERMAJORVERSION='nginx-1.13'; export GB_CONTAINERMAJORVERSION + +OS_TYPE="$(uname -s)"; export OS_TYPE diff --git a/1.13.12/DockerfileRuntime b/versions/1.13.12/DockerfileRuntime similarity index 66% rename from 1.13.12/DockerfileRuntime rename to versions/1.13.12/DockerfileRuntime index 70f5270..2503c42 100644 --- a/1.13.12/DockerfileRuntime +++ b/versions/1.13.12/DockerfileRuntime @@ -1,8 +1,7 @@ - ################################################################################ # WARNING: This file has been auto-generated. DO NOT EDIT: WARNING -# Created on 2020-03-14T02:33:42+1100, using template:DockerfileRuntime.tmpl and json:gearbox.json +# Created on 2020-04-01T12:01:58+1100, using template:DockerfileRuntime.tmpl and json:gearbox.json # Referenced Docker container for docker-nginx based off gearboxworks/gearbox-base:alpine-3.7 with nginx:1.13.12-alpine overlayed. ARG VERSION=1.13.12 @@ -26,34 +25,36 @@ ENV GEARBOX_CONTAINER_NAME "docker-nginx" ENV GEARBOX_CONTAINER_VERSION ${VERSION} ENV GEARBOX_ENTRYPOINT ${GEARBOX_ENTRYPOINT} ENV GEARBOX_ENTRYPOINT_ARGS ${GEARBOX_ENTRYPOINT_ARGS} -LABEL gearbox.json='{"state": "production","organization": "gearboxworks","name": "nginx","maintainer": "Gearbox Team ","class": "webserver","network": "--network gearboxnet","ports": ["80","443"],"volumes": "","restart": "--restart no","run": "/usr/sbin/nginx","args": "","env": {},"versions": {"1.15.9": {"majorversion": "1.15","latest": true,"ref": "nginx:1.15.9-alpine","base": "gearboxworks/gearbox-base:alpine-3.9"},"1.14.2": {"majorversion": "1.14","latest": false,"ref": "nginx:1.14.2-alpine","base": "gearboxworks/gearbox-base:alpine-3.8"},"1.13.12": {"majorversion": "1.13","latest": false,"ref": "nginx:1.13.12-alpine","base": "gearboxworks/gearbox-base:alpine-3.7"},"1.12.2": {"majorversion": "1.12","latest": false,"ref": "nginx:1.12.2-alpine","base": "gearboxworks/gearbox-base:alpine-3.5"}}}' +LABEL gearbox.json='{"schema": "gear-1","meta": {"state": "production","organization": "gearboxworks","name": "nginx","label": "Nginx","maintainer": "Gearbox Team ","class": "webserver","refurl": "unknown"},"build": {"ports": {"http": "80","https": "443"},"run": "/usr/sbin/nginx","args": "","env": {},"network": "--network gearboxnet","volumes": "","restart": "--restart no"},"run": {},"project": {},"extensions": {},"versions": {"1.12.2": {"majorversion": "1.12","latest": false,"ref": "nginx:1.12.2-alpine","base": "gearboxworks/gearbox-base:alpine-3.5"},"1.13.12": {"majorversion": "1.13","latest": false,"ref": "nginx:1.13.12-alpine","base": "gearboxworks/gearbox-base:alpine-3.7"},"1.14.2": {"majorversion": "1.14","latest": false,"ref": "nginx:1.14.2-alpine","base": "gearboxworks/gearbox-base:alpine-3.8"},"1.15.9": {"majorversion": "1.15","latest": true,"ref": "nginx:1.15.9-alpine","base": "gearboxworks/gearbox-base:alpine-3.9"},"": {}}}' LABEL gearbox.version='1.13.12' ENV GEARBOX_VERSION "1.13.12" -LABEL container.args="" -ENV GEARBOX_ARGS "" LABEL container.class="webserver" ENV GEARBOX_CLASS "webserver" -# SKIP env +LABEL container.label="Nginx" +ENV GEARBOX_LABEL "Nginx" LABEL container.maintainer="Gearbox Team " ENV GEARBOX_MAINTAINER "Gearbox Team " LABEL container.name="nginx" ENV GEARBOX_NAME "nginx" -LABEL container.network="--network gearboxnet" -ENV GEARBOX_NETWORK "--network gearboxnet" LABEL container.organization="gearboxworks" ENV GEARBOX_ORGANIZATION "gearboxworks" -LABEL container.ports="[80 443]" -ENV GEARBOX_PORTS "[80 443]" +LABEL container.refurl="unknown" +ENV GEARBOX_REFURL "unknown" +LABEL container.state="production" +ENV GEARBOX_STATE "production" +LABEL container.args="" +ENV GEARBOX_ARGS "" +# SKIP env +LABEL container.network="--network gearboxnet" +ENV GEARBOX_NETWORK "--network gearboxnet" +LABEL container.ports="map[http:80 https:443]" +ENV GEARBOX_PORTS "map[http:80 https:443]" LABEL container.restart="--restart no" ENV GEARBOX_RESTART "--restart no" LABEL container.run="/usr/sbin/nginx" ENV GEARBOX_RUN "/usr/sbin/nginx" -LABEL container.state="production" -ENV GEARBOX_STATE "production" -# SKIP versions LABEL container.volumes="" ENV GEARBOX_VOLUMES "" - LABEL container.base="gearboxworks/gearbox-base:alpine-3.7" ENV GEARBOX_BASE "gearboxworks/gearbox-base:alpine-3.7" LABEL container.latest="false" @@ -63,12 +64,9 @@ ENV GEARBOX_MAJORVERSION "1.13" LABEL container.ref="nginx:1.13.12-alpine" ENV GEARBOX_REF "nginx:1.13.12-alpine" - - # 5. Now copy the local files specific to this container. COPY build /etc/gearbox -COPY ${VERSION}/build /etc/gearbox -COPY ${VERSION}/gearbox.json /etc/gearbox/gearbox.json +COPY versions/${VERSION}/build /etc/gearbox # 6. Run the base.sh script to set everything up. RUN /bin/sh /etc/gearbox/build/base.sh @@ -84,5 +82,3 @@ CMD ["/init"] # END ################################################################################ - - diff --git a/1.13.12/build/unit-tests/nginx/02-release.sh b/versions/1.13.12/build/unit-tests/nginx/02-release.sh similarity index 100% rename from 1.13.12/build/unit-tests/nginx/02-release.sh rename to versions/1.13.12/build/unit-tests/nginx/02-release.sh diff --git a/versions/1.14.2/.env b/versions/1.14.2/.env new file mode 100644 index 0000000..69f992c --- /dev/null +++ b/versions/1.14.2/.env @@ -0,0 +1,33 @@ + +GB_STATE='production'; export GB_STATE +GB_ORGANIZATION='gearboxworks'; export GB_ORGANIZATION +GB_NAME='nginx'; export GB_NAME +GB_MAINTAINER='Gearbox Team '; export GB_MAINTAINER +GB_VERSION='1.14.2'; export GB_VERSION +GB_MAJORVERSION='1.14'; export GB_MAJORVERSION +GB_LATEST=''; export GB_LATEST +GB_CLASS='webserver'; export GB_CLASS +GB_NETWORK='--network gearboxnet'; export GB_NETWORK + +GB_PORTS='80 443 '; export GB_PORTS +GB_VOLUMES=''; export GB_VOLUMES +GB_RESTART='--restart no'; export GB_RESTART +GB_RUN='/usr/sbin/nginx'; export GB_RUN +GB_ARGS=''; export GB_ARGS +GB_ENV=''; export GB_ENV + +GB_BASE='gearboxworks/gearbox-base:alpine-3.8'; export GB_BASE +GB_REF='nginx:1.14.2-alpine'; export GB_REF + +GB_DOCKERFILE='versions/1.14.2/DockerfileRuntime'; export GB_DOCKERFILE +# GB_JSONFILE='1.14.2/gearbox.json'; export GB_JSONFILE +GB_JSON='{"schema": "gear-1","meta": {"state": "production","organization": "gearboxworks","name": "nginx","label": "Nginx","maintainer": "Gearbox Team ","class": "webserver","refurl": "unknown"},"build": {"ports": {"http": "80","https": "443"},"run": "/usr/sbin/nginx","args": "","env": {},"network": "--network gearboxnet","volumes": "","restart": "--restart no"},"run": {},"project": {},"extensions": {},"versions": {"1.12.2": {"majorversion": "1.12","latest": false,"ref": "nginx:1.12.2-alpine","base": "gearboxworks/gearbox-base:alpine-3.5"},"1.13.12": {"majorversion": "1.13","latest": false,"ref": "nginx:1.13.12-alpine","base": "gearboxworks/gearbox-base:alpine-3.7"},"1.14.2": {"majorversion": "1.14","latest": false,"ref": "nginx:1.14.2-alpine","base": "gearboxworks/gearbox-base:alpine-3.8"},"1.15.9": {"majorversion": "1.15","latest": true,"ref": "nginx:1.15.9-alpine","base": "gearboxworks/gearbox-base:alpine-3.9"},"": {}}}'; export GB_JSON + +GB_IMAGENAME='gearboxworks/nginx'; export GB_IMAGENAME +GB_IMAGEVERSION='gearboxworks/nginx:1.14.2'; export GB_IMAGEVERSION +GB_IMAGEMAJORVERSION='gearboxworks/nginx:1.14'; export GB_IMAGEMAJORVERSION + +GB_CONTAINERVERSION='nginx-1.14.2'; export GB_CONTAINERVERSION +GB_CONTAINERMAJORVERSION='nginx-1.14'; export GB_CONTAINERMAJORVERSION + +OS_TYPE="$(uname -s)"; export OS_TYPE diff --git a/1.14.2/DockerfileRuntime b/versions/1.14.2/DockerfileRuntime similarity index 66% rename from 1.14.2/DockerfileRuntime rename to versions/1.14.2/DockerfileRuntime index abd489a..9859986 100644 --- a/1.14.2/DockerfileRuntime +++ b/versions/1.14.2/DockerfileRuntime @@ -1,8 +1,7 @@ - ################################################################################ # WARNING: This file has been auto-generated. DO NOT EDIT: WARNING -# Created on 2020-03-14T02:33:42+1100, using template:DockerfileRuntime.tmpl and json:gearbox.json +# Created on 2020-04-01T12:01:58+1100, using template:DockerfileRuntime.tmpl and json:gearbox.json # Referenced Docker container for docker-nginx based off gearboxworks/gearbox-base:alpine-3.8 with nginx:1.14.2-alpine overlayed. ARG VERSION=1.14.2 @@ -26,34 +25,36 @@ ENV GEARBOX_CONTAINER_NAME "docker-nginx" ENV GEARBOX_CONTAINER_VERSION ${VERSION} ENV GEARBOX_ENTRYPOINT ${GEARBOX_ENTRYPOINT} ENV GEARBOX_ENTRYPOINT_ARGS ${GEARBOX_ENTRYPOINT_ARGS} -LABEL gearbox.json='{"state": "production","organization": "gearboxworks","name": "nginx","maintainer": "Gearbox Team ","class": "webserver","network": "--network gearboxnet","ports": ["80","443"],"volumes": "","restart": "--restart no","run": "/usr/sbin/nginx","args": "","env": {},"versions": {"1.15.9": {"majorversion": "1.15","latest": true,"ref": "nginx:1.15.9-alpine","base": "gearboxworks/gearbox-base:alpine-3.9"},"1.14.2": {"majorversion": "1.14","latest": false,"ref": "nginx:1.14.2-alpine","base": "gearboxworks/gearbox-base:alpine-3.8"},"1.13.12": {"majorversion": "1.13","latest": false,"ref": "nginx:1.13.12-alpine","base": "gearboxworks/gearbox-base:alpine-3.7"},"1.12.2": {"majorversion": "1.12","latest": false,"ref": "nginx:1.12.2-alpine","base": "gearboxworks/gearbox-base:alpine-3.5"}}}' +LABEL gearbox.json='{"schema": "gear-1","meta": {"state": "production","organization": "gearboxworks","name": "nginx","label": "Nginx","maintainer": "Gearbox Team ","class": "webserver","refurl": "unknown"},"build": {"ports": {"http": "80","https": "443"},"run": "/usr/sbin/nginx","args": "","env": {},"network": "--network gearboxnet","volumes": "","restart": "--restart no"},"run": {},"project": {},"extensions": {},"versions": {"1.12.2": {"majorversion": "1.12","latest": false,"ref": "nginx:1.12.2-alpine","base": "gearboxworks/gearbox-base:alpine-3.5"},"1.13.12": {"majorversion": "1.13","latest": false,"ref": "nginx:1.13.12-alpine","base": "gearboxworks/gearbox-base:alpine-3.7"},"1.14.2": {"majorversion": "1.14","latest": false,"ref": "nginx:1.14.2-alpine","base": "gearboxworks/gearbox-base:alpine-3.8"},"1.15.9": {"majorversion": "1.15","latest": true,"ref": "nginx:1.15.9-alpine","base": "gearboxworks/gearbox-base:alpine-3.9"},"": {}}}' LABEL gearbox.version='1.14.2' ENV GEARBOX_VERSION "1.14.2" -LABEL container.args="" -ENV GEARBOX_ARGS "" LABEL container.class="webserver" ENV GEARBOX_CLASS "webserver" -# SKIP env +LABEL container.label="Nginx" +ENV GEARBOX_LABEL "Nginx" LABEL container.maintainer="Gearbox Team " ENV GEARBOX_MAINTAINER "Gearbox Team " LABEL container.name="nginx" ENV GEARBOX_NAME "nginx" -LABEL container.network="--network gearboxnet" -ENV GEARBOX_NETWORK "--network gearboxnet" LABEL container.organization="gearboxworks" ENV GEARBOX_ORGANIZATION "gearboxworks" -LABEL container.ports="[80 443]" -ENV GEARBOX_PORTS "[80 443]" +LABEL container.refurl="unknown" +ENV GEARBOX_REFURL "unknown" +LABEL container.state="production" +ENV GEARBOX_STATE "production" +LABEL container.args="" +ENV GEARBOX_ARGS "" +# SKIP env +LABEL container.network="--network gearboxnet" +ENV GEARBOX_NETWORK "--network gearboxnet" +LABEL container.ports="map[http:80 https:443]" +ENV GEARBOX_PORTS "map[http:80 https:443]" LABEL container.restart="--restart no" ENV GEARBOX_RESTART "--restart no" LABEL container.run="/usr/sbin/nginx" ENV GEARBOX_RUN "/usr/sbin/nginx" -LABEL container.state="production" -ENV GEARBOX_STATE "production" -# SKIP versions LABEL container.volumes="" ENV GEARBOX_VOLUMES "" - LABEL container.base="gearboxworks/gearbox-base:alpine-3.8" ENV GEARBOX_BASE "gearboxworks/gearbox-base:alpine-3.8" LABEL container.latest="false" @@ -63,12 +64,9 @@ ENV GEARBOX_MAJORVERSION "1.14" LABEL container.ref="nginx:1.14.2-alpine" ENV GEARBOX_REF "nginx:1.14.2-alpine" - - # 5. Now copy the local files specific to this container. COPY build /etc/gearbox -COPY ${VERSION}/build /etc/gearbox -COPY ${VERSION}/gearbox.json /etc/gearbox/gearbox.json +COPY versions/${VERSION}/build /etc/gearbox # 6. Run the base.sh script to set everything up. RUN /bin/sh /etc/gearbox/build/base.sh @@ -84,5 +82,3 @@ CMD ["/init"] # END ################################################################################ - - diff --git a/1.14.2/build/unit-tests/nginx/02-release.sh b/versions/1.14.2/build/unit-tests/nginx/02-release.sh similarity index 100% rename from 1.14.2/build/unit-tests/nginx/02-release.sh rename to versions/1.14.2/build/unit-tests/nginx/02-release.sh diff --git a/versions/1.15.9/.env b/versions/1.15.9/.env new file mode 100644 index 0000000..05a46dd --- /dev/null +++ b/versions/1.15.9/.env @@ -0,0 +1,33 @@ + +GB_STATE='production'; export GB_STATE +GB_ORGANIZATION='gearboxworks'; export GB_ORGANIZATION +GB_NAME='nginx'; export GB_NAME +GB_MAINTAINER='Gearbox Team '; export GB_MAINTAINER +GB_VERSION='1.15.9'; export GB_VERSION +GB_MAJORVERSION='1.15'; export GB_MAJORVERSION +GB_LATEST='true'; export GB_LATEST +GB_CLASS='webserver'; export GB_CLASS +GB_NETWORK='--network gearboxnet'; export GB_NETWORK + +GB_PORTS='80 443 '; export GB_PORTS +GB_VOLUMES=''; export GB_VOLUMES +GB_RESTART='--restart no'; export GB_RESTART +GB_RUN='/usr/sbin/nginx'; export GB_RUN +GB_ARGS=''; export GB_ARGS +GB_ENV=''; export GB_ENV + +GB_BASE='gearboxworks/gearbox-base:alpine-3.9'; export GB_BASE +GB_REF='nginx:1.15.9-alpine'; export GB_REF + +GB_DOCKERFILE='versions/1.15.9/DockerfileRuntime'; export GB_DOCKERFILE +# GB_JSONFILE='1.15.9/gearbox.json'; export GB_JSONFILE +GB_JSON='{"schema": "gear-1","meta": {"state": "production","organization": "gearboxworks","name": "nginx","label": "Nginx","maintainer": "Gearbox Team ","class": "webserver","refurl": "unknown"},"build": {"ports": {"http": "80","https": "443"},"run": "/usr/sbin/nginx","args": "","env": {},"network": "--network gearboxnet","volumes": "","restart": "--restart no"},"run": {},"project": {},"extensions": {},"versions": {"1.12.2": {"majorversion": "1.12","latest": false,"ref": "nginx:1.12.2-alpine","base": "gearboxworks/gearbox-base:alpine-3.5"},"1.13.12": {"majorversion": "1.13","latest": false,"ref": "nginx:1.13.12-alpine","base": "gearboxworks/gearbox-base:alpine-3.7"},"1.14.2": {"majorversion": "1.14","latest": false,"ref": "nginx:1.14.2-alpine","base": "gearboxworks/gearbox-base:alpine-3.8"},"1.15.9": {"majorversion": "1.15","latest": true,"ref": "nginx:1.15.9-alpine","base": "gearboxworks/gearbox-base:alpine-3.9"},"": {}}}'; export GB_JSON + +GB_IMAGENAME='gearboxworks/nginx'; export GB_IMAGENAME +GB_IMAGEVERSION='gearboxworks/nginx:1.15.9'; export GB_IMAGEVERSION +GB_IMAGEMAJORVERSION='gearboxworks/nginx:1.15'; export GB_IMAGEMAJORVERSION + +GB_CONTAINERVERSION='nginx-1.15.9'; export GB_CONTAINERVERSION +GB_CONTAINERMAJORVERSION='nginx-1.15'; export GB_CONTAINERMAJORVERSION + +OS_TYPE="$(uname -s)"; export OS_TYPE diff --git a/1.15.9/DockerfileRuntime b/versions/1.15.9/DockerfileRuntime similarity index 66% rename from 1.15.9/DockerfileRuntime rename to versions/1.15.9/DockerfileRuntime index c1cfdb2..8b7ce47 100644 --- a/1.15.9/DockerfileRuntime +++ b/versions/1.15.9/DockerfileRuntime @@ -1,8 +1,7 @@ - ################################################################################ # WARNING: This file has been auto-generated. DO NOT EDIT: WARNING -# Created on 2020-03-14T02:33:42+1100, using template:DockerfileRuntime.tmpl and json:gearbox.json +# Created on 2020-04-01T12:01:58+1100, using template:DockerfileRuntime.tmpl and json:gearbox.json # Referenced Docker container for docker-nginx based off gearboxworks/gearbox-base:alpine-3.9 with nginx:1.15.9-alpine overlayed. ARG VERSION=1.15.9 @@ -26,34 +25,36 @@ ENV GEARBOX_CONTAINER_NAME "docker-nginx" ENV GEARBOX_CONTAINER_VERSION ${VERSION} ENV GEARBOX_ENTRYPOINT ${GEARBOX_ENTRYPOINT} ENV GEARBOX_ENTRYPOINT_ARGS ${GEARBOX_ENTRYPOINT_ARGS} -LABEL gearbox.json='{"state": "production","organization": "gearboxworks","name": "nginx","maintainer": "Gearbox Team ","class": "webserver","network": "--network gearboxnet","ports": ["80","443"],"volumes": "","restart": "--restart no","run": "/usr/sbin/nginx","args": "","env": {},"versions": {"1.15.9": {"majorversion": "1.15","latest": true,"ref": "nginx:1.15.9-alpine","base": "gearboxworks/gearbox-base:alpine-3.9"},"1.14.2": {"majorversion": "1.14","latest": false,"ref": "nginx:1.14.2-alpine","base": "gearboxworks/gearbox-base:alpine-3.8"},"1.13.12": {"majorversion": "1.13","latest": false,"ref": "nginx:1.13.12-alpine","base": "gearboxworks/gearbox-base:alpine-3.7"},"1.12.2": {"majorversion": "1.12","latest": false,"ref": "nginx:1.12.2-alpine","base": "gearboxworks/gearbox-base:alpine-3.5"}}}' +LABEL gearbox.json='{"schema": "gear-1","meta": {"state": "production","organization": "gearboxworks","name": "nginx","label": "Nginx","maintainer": "Gearbox Team ","class": "webserver","refurl": "unknown"},"build": {"ports": {"http": "80","https": "443"},"run": "/usr/sbin/nginx","args": "","env": {},"network": "--network gearboxnet","volumes": "","restart": "--restart no"},"run": {},"project": {},"extensions": {},"versions": {"1.12.2": {"majorversion": "1.12","latest": false,"ref": "nginx:1.12.2-alpine","base": "gearboxworks/gearbox-base:alpine-3.5"},"1.13.12": {"majorversion": "1.13","latest": false,"ref": "nginx:1.13.12-alpine","base": "gearboxworks/gearbox-base:alpine-3.7"},"1.14.2": {"majorversion": "1.14","latest": false,"ref": "nginx:1.14.2-alpine","base": "gearboxworks/gearbox-base:alpine-3.8"},"1.15.9": {"majorversion": "1.15","latest": true,"ref": "nginx:1.15.9-alpine","base": "gearboxworks/gearbox-base:alpine-3.9"},"": {}}}' LABEL gearbox.version='1.15.9' ENV GEARBOX_VERSION "1.15.9" -LABEL container.args="" -ENV GEARBOX_ARGS "" LABEL container.class="webserver" ENV GEARBOX_CLASS "webserver" -# SKIP env +LABEL container.label="Nginx" +ENV GEARBOX_LABEL "Nginx" LABEL container.maintainer="Gearbox Team " ENV GEARBOX_MAINTAINER "Gearbox Team " LABEL container.name="nginx" ENV GEARBOX_NAME "nginx" -LABEL container.network="--network gearboxnet" -ENV GEARBOX_NETWORK "--network gearboxnet" LABEL container.organization="gearboxworks" ENV GEARBOX_ORGANIZATION "gearboxworks" -LABEL container.ports="[80 443]" -ENV GEARBOX_PORTS "[80 443]" +LABEL container.refurl="unknown" +ENV GEARBOX_REFURL "unknown" +LABEL container.state="production" +ENV GEARBOX_STATE "production" +LABEL container.args="" +ENV GEARBOX_ARGS "" +# SKIP env +LABEL container.network="--network gearboxnet" +ENV GEARBOX_NETWORK "--network gearboxnet" +LABEL container.ports="map[http:80 https:443]" +ENV GEARBOX_PORTS "map[http:80 https:443]" LABEL container.restart="--restart no" ENV GEARBOX_RESTART "--restart no" LABEL container.run="/usr/sbin/nginx" ENV GEARBOX_RUN "/usr/sbin/nginx" -LABEL container.state="production" -ENV GEARBOX_STATE "production" -# SKIP versions LABEL container.volumes="" ENV GEARBOX_VOLUMES "" - LABEL container.base="gearboxworks/gearbox-base:alpine-3.9" ENV GEARBOX_BASE "gearboxworks/gearbox-base:alpine-3.9" LABEL container.latest="true" @@ -63,12 +64,9 @@ ENV GEARBOX_MAJORVERSION "1.15" LABEL container.ref="nginx:1.15.9-alpine" ENV GEARBOX_REF "nginx:1.15.9-alpine" - - # 5. Now copy the local files specific to this container. COPY build /etc/gearbox -COPY ${VERSION}/build /etc/gearbox -COPY ${VERSION}/gearbox.json /etc/gearbox/gearbox.json +COPY versions/${VERSION}/build /etc/gearbox # 6. Run the base.sh script to set everything up. RUN /bin/sh /etc/gearbox/build/base.sh @@ -84,5 +82,3 @@ CMD ["/init"] # END ################################################################################ - - diff --git a/1.15.9/build/unit-tests/nginx/02-release.sh b/versions/1.15.9/build/unit-tests/nginx/02-release.sh similarity index 100% rename from 1.15.9/build/unit-tests/nginx/02-release.sh rename to versions/1.15.9/build/unit-tests/nginx/02-release.sh