From b93486036f1ec89bc18d1eb07a61410fe721b157 Mon Sep 17 00:00:00 2001 From: Jonathan Ervine Date: Tue, 25 Feb 2020 17:09:52 +0800 Subject: [PATCH] new file: Dockerfile new file: Jenkinsfile new file: run.sh Initial commit --- Dockerfile | 24 ++++++++++++++++++++++++ Jenkinsfile | 26 ++++++++++++++++++++++++++ run.sh | 17 +++++++++++++++++ 3 files changed, 67 insertions(+) create mode 100644 Dockerfile create mode 100644 Jenkinsfile create mode 100644 run.sh diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..19a0266 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,24 @@ +# Base on latest (edge) alpine image +FROM node:10-alpine +MAINTAINER Sven Fischer + +WORKDIR /src + +RUN apk add --no-cache --virtual .build-deps \ + git python make g++ \ + && apk add --no-cache openssh-client \ + && git clone https://github.com/krishnasrinivas/wetty --branch v1.1.4 /src \ + && npm install \ + && apk del .build-deps \ + && adduser -h /src -D term \ + && npm run-script build + +ADD run.sh /src + +# Default ENV params used by wetty +ENV REMOTE_SSH_SERVER=127.0.0.1 \ + REMOTE_SSH_PORT=22 + +EXPOSE 3000 + +ENTRYPOINT "./run.sh" diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 0000000..c442187 --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,26 @@ +node("docker-node") { + docker.withRegistry('https://harbor.ervine.dev', 'jenkins-to-harbor') { + + git branch: "3.11.3", url: "ssh://git@git.ervine.org:2222/jonny/x86_64-alpine-wetty", credentialsId: 'jenkins-to-git' + + sh "git rev-parse HEAD > .git/commit-id" + def commit_id = readFile('.git/commit-id').trim() + println commit_id + + try { + stage "build" + def app = docker.build "library/x86_64/alpine/wetty" + + stage "publish" + app.push("${env.BUILD_NUMBER}") + app.push("latest") + + stage('Deploy on K8s'){ + sh "/usr/local/bin/kubectl -n utils delete po --all" + } + } + catch (err) { + currentBuild.result = 'FAILURE' + } + } +} diff --git a/run.sh b/run.sh new file mode 100644 index 0000000..a50a2a5 --- /dev/null +++ b/run.sh @@ -0,0 +1,17 @@ +#!/bin/sh + +if [ "x${BASE}" == "x" ]; then + BASE="/" +fi + +if [ "x${REMOTE_SSH_SERVER}" == "x" ]; then + # Login mode, no SSH_SERVER + npm start -- -p 3000 +else + # SSH connect mode + cmd="npm start -- -p 3000 --sshhost ${REMOTE_SSH_SERVER} --sshport ${REMOTE_SSH_PORT} --base ${BASE}" + if ! [ "x${REMOTE_SSH_USER}" == "x" ]; then + cmd="${cmd} --sshuser ${REMOTE_SSH_USER}" + fi + su -c "${cmd}" term +fi