diff --git a/apps/web/almond-cloud/Dockerfile b/apps/web/almond-cloud/Dockerfile new file mode 100644 index 0000000..918417f --- /dev/null +++ b/apps/web/almond-cloud/Dockerfile @@ -0,0 +1,34 @@ +FROM debian:bullseye + +ENV DEBIAN_FRONTEND noninteractive + +ARG DEVPKGS="git make cmake gcc g++ python-dev libsqlcipher-dev" + +#RUN sed -i 's@deb.debian.org@apt-cache.lan/deb.debian.org@g' /etc/apt/sources.list && \ +# sed -i 's@security.debian.org@apt-cache.lan/security.debian.org@g' /etc/apt/sources.list && \ + +RUN apt-get update && \ + apt-get -y install ${DEVPKGS} python3-pip python3-torch graphicsmagick zip unzip bubblewrap nodejs \ + sqlcipher gettext && \ + pip3 install 'git+https://github.com/stanford-oval/genienlp@3885917258678b8cd38fbd6d9b8488b6ac8caed7#egg=genienlp' + +#setup +RUN useradd -ms /bin/bash -r almond-cloud && id almond-cloud +COPY --chown=almond-cloud:almond-cloud . /opt/almond-cloud/ +WORKDIR /opt/almond-cloud/ +RUN echo "build_from_source = true" > .npmrc && \ + echo "sqlite = external" >> .npmrc && \ + echo "sqlite_libname = sqlcipher" >> .npmrc && \ + su almond-cloud -c 'CPLUS_INCLUDE_PATH=/usr/include/sqlcipher npm install' && \ + chown -R root:root /opt/almond-cloud + +# CLeanup +RUN apt-get remove -y --purge ${DEVPKGS} && \ + apt-get autoremove --purge -y && \ + apt-get clean -y && \ + rm -rf /var/lib/apt/lists/* && \ + rm -rf /var/cache/apt/* /tmp/* /var/tmp/* /var/log/* + +USER almond-cloud +WORKDIR /home/almond-cloud +ENTRYPOINT ["/opt/almond-cloud/docker/start.sh"] \ No newline at end of file diff --git a/apps/web/almond-cloud/start.sh b/apps/web/almond-cloud/start.sh new file mode 100755 index 0000000..07b10d3 --- /dev/null +++ b/apps/web/almond-cloud/start.sh @@ -0,0 +1,3 @@ +#!/bin/bash +NODE_MAX_OLD_SPACE_SIZE=${NODE_MAX_OLD_SPACE_SIZE:-500} +exec node --max_old_space_size=${NODE_MAX_OLD_SPACE_SIZE} /opt/almond-cloud/main.js "$@" diff --git a/apps/web/almond-cloud/tekton-image-build.yaml b/apps/web/almond-cloud/tekton-image-build.yaml new file mode 100644 index 0000000..3ce0ee1 --- /dev/null +++ b/apps/web/almond-cloud/tekton-image-build.yaml @@ -0,0 +1,77 @@ +apiVersion: tekton.dev/v1alpha1 +kind: PipelineResource +metadata: + name: chaos-kubernetes-git +spec: + type: git + params: + - name: revision + value: master + - name: url + value: http://git-ui.lan/chaos/kubernetes.git + - name: submodules + value: "false" +--- +apiVersion: tekton.dev/v1alpha1 +kind: PipelineResource +metadata: + name: img-almond-cloud +spec: + type: image + params: + - name: url + value: cr.lan/almond-cloud +--- +apiVersion: tekton.dev/v1beta1 +kind: Task +metadata: + name: build-almond-cloud +spec: + params: + - name: pathToDockerFile + type: string + default: $(resources.inputs.source.path)/apps/web/almond-cloud/Dockerfile + - name: pathToContext + type: string + default: $(resources.inputs.source.path)/apps/web/almond-cloud + resources: + inputs: + - name: source + type: git + outputs: + - name: builtImage + type: image + steps: + - name: build-and-push + image: gcr.io/kaniko-project/executor:arm64 + command: + - /kaniko/executor + args: + - --dockerfile=$(params.pathToDockerFile) + - --destination=$(resources.outputs.builtImage.url) + - --context=$(params.pathToContext) + - --snapshotMode=redo + - --skip-tls-verify +--- +apiVersion: tekton.dev/v1beta1 +kind: TaskRun +metadata: + name: img-almond-cloud-taskrun +spec: + #serviceAccountName: dockerhub-service + taskRef: + name: build-almond-cloud + params: + - name: pathToDockerFile + value: Dockerfile + resources: + inputs: + - name: source + resourceRef: + name: chaos-kubernetes-git + outputs: + - name: builtImage + resourceRef: + name: img-almond-cloud + + \ No newline at end of file