diff --git a/backend/api.js b/backend/api.js index 1f06812..040d391 100644 --- a/backend/api.js +++ b/backend/api.js @@ -15,7 +15,7 @@ const allSessions = new Set(); export class Session { get homedir() { - return `/tmp/riju/${this.uuid}`; + return "/home/riju/src"; } get config() { diff --git a/docker/base/Dockerfile b/docker/base/Dockerfile index 4defbb1..e6a956e 100644 --- a/docker/base/Dockerfile +++ b/docker/base/Dockerfile @@ -3,7 +3,10 @@ FROM ubuntu:rolling COPY docker/base/install.bash /tmp/ RUN /tmp/install.bash -WORKDIR /src +RUN useradd -p '!' -m -l -s /usr/bin/bash riju +RUN runuser -u riju -- mkdir /home/riju/src +WORKDIR /home/riju/src + COPY docker/shared/my_init /usr/local/sbin/ ENTRYPOINT ["/usr/local/sbin/my_init", "--quiet", "--"] CMD ["bash"] diff --git a/docker/lang/Dockerfile b/docker/lang/Dockerfile index f38b4f8..0bfaf5f 100644 --- a/docker/lang/Dockerfile +++ b/docker/lang/Dockerfile @@ -5,10 +5,4 @@ ARG LANG COPY docker/lang/install.bash /tmp/ RUN /tmp/install.bash -ENTRYPOINT ["/usr/local/sbin/my_init", "--quiet", "--"] -RUN rm /usr/local/sbin/pid1.bash - -RUN useradd -p '!' -m -l -s /usr/bin/bash riju -WORKDIR /home/riju/src USER riju -CMD ["bash"] diff --git a/docker/lang/install.bash b/docker/lang/install.bash index c0301e7..41f4f04 100755 --- a/docker/lang/install.bash +++ b/docker/lang/install.bash @@ -28,9 +28,11 @@ if dpkg-deb -f "riju-lang-${LANG}.deb" -f Depends | grep .; then apt-get update fi -for file in ./riju-shared-*.deb; do - apt-get install -y "${file}" -done +if compgen -G "./riju-shared-*.deb"; then + for file in ./riju-shared-*.deb; do + apt-get install -y "${file}" + done +fi apt-get install -y "./riju-lang-${LANG}.deb" diff --git a/tools/build-lang-image.js b/tools/build-lang-image.js index ffb99fd..d9016aa 100644 --- a/tools/build-lang-image.js +++ b/tools/build-lang-image.js @@ -1,5 +1,6 @@ import { promises as fs } from "fs"; import http from "http"; +import url from "url"; import { Command } from "commander"; import express from "express"; @@ -24,7 +25,7 @@ async function main() { program.requiredOption("--lang ", "language ID"); program.option("--debug", "interactive debugging"); program.parse(process.argv); - const { lang, debug } = program; + const { lang, debug } = program.opts(); const hash = await hashDockerfile( "lang", { @@ -35,7 +36,7 @@ async function main() { langHash: await getDebHash(`build/lang/${lang}/riju-lang-${lang}.deb`), sharedHashes: ( await Promise.all( - getSharedDepsForLangConfig(await readLangConfig(lang)).map( + (await getSharedDepsForLangConfig(await readLangConfig(lang))).map( async (name) => await getDebHash(`build/shared/${name}/riju-shared-${name}.deb`) )