From 79fae47918f5b98c72ed9bcbdb56ceab8917f312 Mon Sep 17 00:00:00 2001 From: s3lph Date: Sat, 20 Jun 2020 03:42:14 +0200 Subject: [PATCH 1/5] Add a CI step to create a container image --- .gitlab-ci.yml | 15 ++++++++++++++- CHANGELOG.md | 13 +++++++++++++ package/docker/Dockerfile | 13 +++++++++++++ package/docker/config.json | 8 ++++++++ package/docker/template.json | 23 +++++++++++++++++++++++ setup.py | 2 +- spaceapi_server/__init__.py | 2 +- 7 files changed, 73 insertions(+), 3 deletions(-) create mode 100644 package/docker/Dockerfile create mode 100644 package/docker/config.json create mode 100644 package/docker/template.json diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 61f9825..d335c2c 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -141,6 +141,19 @@ build_archlinux: only: - tags +build_docker: + stage: build + script: + - docker build -t "registry.gitlab.com/s3lph/spaceapi-server:$CI_COMMIT_SHA" -f package/docker/Dockerfile . + - docker tag "registry.gitlab.com/s3lph/spaceapi-server:$CI_COMMIT_SHA" "registry.gitlab.com/s3lph/spaceapi-server:$CI_COMMIT_REF_NAME" + - if [[ -n "$CI_COMMIT_TAG" ]]; then docker tag "registry.gitlab.com/s3lph/spaceapi-server:$CI_COMMIT_SHA" "registry.gitlab.com/s3lph/spaceapi-server:$CI_COMMIT_TAG"; fi + - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_TOKEN registry.gitlab.com + - docker push "registry.gitlab.com/s3lph/spaceapi-server:$CI_COMMIT_SHA" + - docker push "registry.gitlab.com/s3lph/spaceapi-server:$CI_COMMIT_REF_NAME" + - if [[ -n "$CI_COMMIT_TAG" ]]; then docker push "registry.gitlab.com/s3lph/spaceapi-server:$CI_COMMIT_TAG"; fi + only: + - tags + release: @@ -148,4 +161,4 @@ release: script: - python3 package/release.py only: - - tags \ No newline at end of file + - tags diff --git a/CHANGELOG.md b/CHANGELOG.md index b5fc656..da53629 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,18 @@ # SpaceAPI Server Changelog + +## Version 0.3 + +Container image release + +### Changes + + +- Release as container image + + + + ## Version 0.3 diff --git a/package/docker/Dockerfile b/package/docker/Dockerfile new file mode 100644 index 0000000..c2b65d0 --- /dev/null +++ b/package/docker/Dockerfile @@ -0,0 +1,13 @@ +FROM python:3.8-alpine + +ADD spaceapi_server/ /spaceapi_server/ +ADD setup.py /setup.py +RUN python setup.py install && mkdir -p /config/plugins && chmod 0755 -R /config +ADD package/docker/config.json /config/config.json +ADD package/docker/template.json /config/template.json + +VOLUME /config +EXPOSE 8000/tcp +USER 1000 + +ENTRYPOINT [ "/usr/local/bin/python3.8", "-m", "spaceapi_server", "/config/config.json" ] diff --git a/package/docker/config.json b/package/docker/config.json new file mode 100644 index 0000000..38107cf --- /dev/null +++ b/package/docker/config.json @@ -0,0 +1,8 @@ +{ + "address": "0.0.0.0", + "port": 8000, + "server": "wsgiref", + "template": "/config/template.json", + "plugins_dir": "/config/plugins", + "plugins": {} +} diff --git a/package/docker/template.json b/package/docker/template.json new file mode 100644 index 0000000..4647ff5 --- /dev/null +++ b/package/docker/template.json @@ -0,0 +1,23 @@ +{ + "api": "0.13", + "space": "example.space", + "logo": "http://example.space/logo.png", + "url": "http://example.space", + "location": { + "address": "example.space, 42 Example Street, 1337 Example Town", + "lon": 42.42, + "lat": 13.37 + }, + "contact": { + "email": "example@example.space" + }, + "issue_report_channels": [ + "email" + ], + "state": { + "open": null + }, + "projects": [ + "http://example.space/projects" + ] +} diff --git a/setup.py b/setup.py index ebbefca..3fae7ce 100755 --- a/setup.py +++ b/setup.py @@ -19,7 +19,7 @@ setup( python_requires='>=3.6', install_requires=[ 'bottle', - 'jinja2' + 'jinja2==2.10' ], entry_points={ 'console_scripts': [ diff --git a/spaceapi_server/__init__.py b/spaceapi_server/__init__.py index d8ea336..81cfc8c 100644 --- a/spaceapi_server/__init__.py +++ b/spaceapi_server/__init__.py @@ -1,2 +1,2 @@ -__version__ = '0.3' +__version__ = '0.3.1' From e8c35f697dba03483676db75265ed9a20f044243 Mon Sep 17 00:00:00 2001 From: s3lph Date: Sat, 20 Jun 2020 03:52:47 +0200 Subject: [PATCH 2/5] Update CI image to include Docker --- .gitlab-ci.yml | 2 +- package/Dockerfile | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index d335c2c..ca4fed2 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,5 +1,5 @@ --- -image: s3lph/spaceapi-server-ci:20191126-02 +image: s3lph/spaceapi-server-ci:20200620-01 stages: - test diff --git a/package/Dockerfile b/package/Dockerfile index 31913cd..0feb8f5 100644 --- a/package/Dockerfile +++ b/package/Dockerfile @@ -1,6 +1,6 @@ FROM python:3.8-buster as python RUN apt update \ - && apt install -y --no-install-recommends lintian rsync sudo \ + && apt install -y --no-install-recommends lintian rsync sudo docker.io \ && pip3 install pycodestyle coverage \ && rm -rf /var/cache/apt From b5f5c8f32b839ff5fab451ba163267ea4bfdfe51 Mon Sep 17 00:00:00 2001 From: s3lph Date: Sat, 20 Jun 2020 04:09:27 +0200 Subject: [PATCH 3/5] Fix CI script --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ca4fed2..8157787 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -147,7 +147,7 @@ build_docker: - docker build -t "registry.gitlab.com/s3lph/spaceapi-server:$CI_COMMIT_SHA" -f package/docker/Dockerfile . - docker tag "registry.gitlab.com/s3lph/spaceapi-server:$CI_COMMIT_SHA" "registry.gitlab.com/s3lph/spaceapi-server:$CI_COMMIT_REF_NAME" - if [[ -n "$CI_COMMIT_TAG" ]]; then docker tag "registry.gitlab.com/s3lph/spaceapi-server:$CI_COMMIT_SHA" "registry.gitlab.com/s3lph/spaceapi-server:$CI_COMMIT_TAG"; fi - - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_TOKEN registry.gitlab.com + - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_TOKEN" registry.gitlab.com - docker push "registry.gitlab.com/s3lph/spaceapi-server:$CI_COMMIT_SHA" - docker push "registry.gitlab.com/s3lph/spaceapi-server:$CI_COMMIT_REF_NAME" - if [[ -n "$CI_COMMIT_TAG" ]]; then docker push "registry.gitlab.com/s3lph/spaceapi-server:$CI_COMMIT_TAG"; fi From 6b957ac864afd64fc5c63e37688075d5db183e6e Mon Sep 17 00:00:00 2001 From: s3lph Date: Sat, 20 Jun 2020 04:29:06 +0200 Subject: [PATCH 4/5] Revert "Fix CI script" This reverts commit b5f5c8f32b839ff5fab451ba163267ea4bfdfe51. --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 8157787..ca4fed2 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -147,7 +147,7 @@ build_docker: - docker build -t "registry.gitlab.com/s3lph/spaceapi-server:$CI_COMMIT_SHA" -f package/docker/Dockerfile . - docker tag "registry.gitlab.com/s3lph/spaceapi-server:$CI_COMMIT_SHA" "registry.gitlab.com/s3lph/spaceapi-server:$CI_COMMIT_REF_NAME" - if [[ -n "$CI_COMMIT_TAG" ]]; then docker tag "registry.gitlab.com/s3lph/spaceapi-server:$CI_COMMIT_SHA" "registry.gitlab.com/s3lph/spaceapi-server:$CI_COMMIT_TAG"; fi - - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_TOKEN" registry.gitlab.com + - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_TOKEN registry.gitlab.com - docker push "registry.gitlab.com/s3lph/spaceapi-server:$CI_COMMIT_SHA" - docker push "registry.gitlab.com/s3lph/spaceapi-server:$CI_COMMIT_REF_NAME" - if [[ -n "$CI_COMMIT_TAG" ]]; then docker push "registry.gitlab.com/s3lph/spaceapi-server:$CI_COMMIT_TAG"; fi From c925281039e593505deb2b4679c1f79008da7496 Mon Sep 17 00:00:00 2001 From: s3lph Date: Sat, 20 Jun 2020 04:39:50 +0200 Subject: [PATCH 5/5] Update Readme --- README.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 80aedee..67aee4f 100644 --- a/README.md +++ b/README.md @@ -88,7 +88,9 @@ invoke custom plugins, which look up and return your dynamic content. Head over to the [Releases][releases], download and install the package that suits your needs. Alternatively, clone the repo and get -started. +started. There also is a Container Image available through the +[Gitlab registry][registry] tagged as +`registry.gitlab.com/s3lph/spaceapi-server`. The remainder of this document assumes that you installed the server as an OS distribution package. @@ -348,3 +350,4 @@ def lookup_sensor(query, default=None): [mit]: https://gitlab.com/s3lph/spaceapi-server/blob/master/LICENSE [spaceapi-getting-started]: https://spaceapi.io/getting-started/ [jinja]: https://jinja.palletsprojects.com/ +[registry]: https://gitlab.com/s3lph/spaceapi-server/container_registry \ No newline at end of file