diff --git a/.drone.yml b/.drone.yml index 4811567..650285a 100644 --- a/.drone.yml +++ b/.drone.yml @@ -24,6 +24,36 @@ steps: password: from_secret: pypi_pwd +- name: push + image: appleboy/drone-scp + settings: + host: + from_secret: ssh_host + username: + from_secret: ssh_user + key: + from_secret: ssh_key + source: + - dist/morss-*.tar.gz + - morss-helper + target: /home/ubuntu + +- name: deploy + image: appleboy/drone-ssh + settings: + host: + from_secret: ssh_host + username: + from_secret: ssh_user + key: + from_secret: ssh_key + script_stop: true + script: + - sudo pip install --upgrade morss-*.tar.gz[full] + - sudo mv morss-helper /usr/bin/local/morss-helper + - sudo rm /root/morss-*.tar.gz morss-helper + - sudo morss-helper reload + trigger: branch: - master @@ -60,37 +90,3 @@ trigger: depends_on: - test - ---- -kind: pipeline -name: ssh - -clone: - disable: true - -steps: -- name: deploy - image: appleboy/drone-ssh - settings: - host: - from_secret: ssh_host - username: - from_secret: ssh_user - key: - from_secret: ssh_key - script_stop: true - script: - - sudo pip install --upgrade morss[full] - - "pid=$$(sudo pidof 'gunicorn: master [morss]')" - - sudo kill -s USR2 $$pid - - sudo kill -s WINCH $$pid - - sudo kill -s TERM $$pid - -trigger: - branch: - - master - event: - - push - -depends_on: -- python diff --git a/Dockerfile b/Dockerfile index 1aea11a..4f6b8b5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -10,5 +10,7 @@ RUN set -ex; \ USER 1000:1000 -ENTRYPOINT ["/bin/sh", "/app/docker-entry.sh"] +ENTRYPOINT ["/bin/sh", "/app/morss-helper"] CMD ["run"] + +HEALTHCHECK CMD python -m morss.crawler http://localhost:${PORT:-8000}/ > /dev/null 2>&1 diff --git a/README.md b/README.md index 094359f..1aeb386 100644 --- a/README.md +++ b/README.md @@ -163,12 +163,12 @@ write_files: content: | DEBUG=1 CACHE=diskcache - CACHE_SIZE=1073741824 + CACHE_SIZE=1073741824 # 1GiB - path: /var/lib/cloud/scripts/per-boot/morss.sh permissions: 744 content: | #!/bin/sh - gunicorn --bind 0.0.0.0:${PORT:-8000} --preload --access-logfile - --daemon morss + /usr/bin/local/morss-helper runcmd: - source /etc/environment @@ -176,6 +176,8 @@ runcmd: - iptables -I INPUT 6 -m state --state NEW -p tcp --dport ${PORT:-8000} -j ACCEPT - netfilter-persistent save - pip install morss[full] + - python -m morss.crawler https://git.pictuga.com/pictuga/morss/raw/branch/master/morss-helper > /usr/bin/local/morss-helper + - chmod +x /usr/bin/local/morss-helper ``` ## Run diff --git a/docker-entry.sh b/morss-helper old mode 100644 new mode 100755 similarity index 60% rename from docker-entry.sh rename to morss-helper index 666d80b..ea2e349 --- a/docker-entry.sh +++ b/morss-helper @@ -6,6 +6,12 @@ if [ "$1" = "sh" ] || [ "$1" = "bash" ]; then elif [ -z "$1" ] || [ "$@" = "run" ]; then gunicorn --bind 0.0.0.0:${PORT:-8000} --preload --access-logfile - morss +elif [ "$@" = "reload" ]; then + pid=$(sudo pidof 'gunicorn: master [morss]') + kill -s USR2 $pid + kill -s WINCH $pid + kill -s TERM $pid + else morss $@