diff --git a/theia-extensions/k8s-app/Dockerfile b/theia-extensions/k8s-app/Dockerfile index e4b84bb5f..6cf13ccb7 100644 --- a/theia-extensions/k8s-app/Dockerfile +++ b/theia-extensions/k8s-app/Dockerfile @@ -12,12 +12,16 @@ RUN apt-get install -y nodejs RUN npm install -g yarn +RUN cd /usr/local/bin && \ + curl https://s3-us-west-1.amazonaws.com/cf-cli-releases/releases/v6.47.2/cf-cli_6.47.2_linux_x86-64.tgz | tar zxvf - + RUN mkdir /theia-app ADD package.json /theia-app RUN cd /theia-app && \ yarn && \ yarn theia build +## Install vscode plugins RUN mkdir /theia-app/plugins && \ cd /theia-app/plugins && \ curl --compressed -o vscode-spring-boot.vsix \ @@ -25,7 +29,10 @@ RUN mkdir /theia-app/plugins && \ curl --compressed -o vscode-concourse.vsix \ https://marketplace.visualstudio.com/_apis/public/gallery/publishers/Pivotal/vsextensions/vscode-concourse/1.13.0/vspackage && \ curl --compressed -o vscode-manifest-yaml.vsix \ - https://marketplace.visualstudio.com/_apis/public/gallery/publishers/Pivotal/vsextensions/vscode-manifest-yaml/1.13.0/vspackage + https://marketplace.visualstudio.com/_apis/public/gallery/publishers/Pivotal/vsextensions/vscode-manifest-yaml/1.13.0/vspackage && \ + curl --compressed -o vscode-manifest-yaml.vsix \ + https://marketplace.visualstudio.com/_apis/public/gallery/publishers/Pivotal/vsextensions/vscode-bosh/1.13.0/vspackage + WORKDIR /theia-app ENV SHELL /bin/bash ENTRYPOINT [ "yarn", "theia", "start", "--hostname=0.0.0.0", "--plugins=local-dir:/theia-app/plugins/", "/home/project" ] diff --git a/theia-extensions/k8s-app/README.md b/theia-extensions/k8s-app/README.md new file mode 100644 index 000000000..3c4730f0d --- /dev/null +++ b/theia-extensions/k8s-app/README.md @@ -0,0 +1,52 @@ +Running Locally with Docker +=========================== + +See script `docker-build-and-run.sh`. Make sure to edit the `JAVA_PROJECT_DIR` +variable set in that script to something that exists on your machine. + +Running via a deployment in K8s +=============================== + +1. Create our setup cluster and login kubectl + +For example with `kind` you can do: + +``` +$ kind create cluster +Creating cluster "kind" ... + ✓ Ensuring node image (kindest/node:v1.15.3) đŸ–ŧ + ✓ Preparing nodes đŸ“Ļ + ✓ Creating kubeadm config 📜 + ✓ Starting control-plane đŸ•šī¸ + ✓ Installing CNI 🔌 + ✓ Installing StorageClass 💾 +Cluster creation complete. You can now use the cluster with: + +export KUBECONFIG="$(kind get kubeconfig-path --name="kind")" +kubectl cluster-info +``` + +2. Create docker image + +See above under "Running Locally with Docker" + +3. Make the image accessible to nodes on the cluster. E.g. push image to +docker hub is one way. + +``` +docker push kdvolder/k8s-theia +``` + +4. Create deployment + +``` +kubectl create -f k8s-yaml/deployment.yml +``` + +5. Make deployment accessible from localhost + +``` +kubectl port-forward deployment/theia-deployment 3000:3000 +``` + +6. Open theia-app on http://localhost:3000 \ No newline at end of file diff --git a/theia-extensions/k8s-app/package.json b/theia-extensions/k8s-app/package.json index dc8a88c52..108cc7397 100644 --- a/theia-extensions/k8s-app/package.json +++ b/theia-extensions/k8s-app/package.json @@ -14,7 +14,6 @@ "@theia/filesystem": "next", "@theia/getting-started": "next", "@theia/git": "next", - "@theia/java-debug": "next", "@theia/json": "next", "@theia/keymaps": "next", "@theia/languages": "next",