diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 61f9825..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 @@ -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/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 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 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'