From e848cc2792bde835d99b9c5b1026d1a4be42b27a Mon Sep 17 00:00:00 2001 From: Radon Rosborough Date: Sat, 16 Jan 2021 09:56:59 -0800 Subject: [PATCH] Install shared deps into composite image --- docker/composite/install.bash | 4 ++++ tools/build-composite-image.js | 12 +++++++++--- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/docker/composite/install.bash b/docker/composite/install.bash index c2d495b..ef329bc 100755 --- a/docker/composite/install.bash +++ b/docker/composite/install.bash @@ -17,6 +17,10 @@ export DEBIAN_FRONTEND=noninteractive apt-get update +riju-curl /shared | while read lang; do + riju-apt-install "/fs/build/shared/${lang}/riju-shared-${lang}.deb" +done + riju-curl /langs | while read lang; do riju-apt-install "/fs/build/lang/${lang}/riju-lang-${lang}.deb" riju-apt-install "/fs/build/config/${lang}/riju-config-${lang}.deb" diff --git a/tools/build-composite-image.js b/tools/build-composite-image.js index b1908d2..0d152a4 100644 --- a/tools/build-composite-image.js +++ b/tools/build-composite-image.js @@ -3,7 +3,7 @@ import http from "http"; import express from "express"; -import { getLangs, getPackages } from "./config.js"; +import { getLangs, getPackages, getSharedDeps } from "./config.js"; import { getLocalImageLabel } from "./docker-util.js"; import { hashDockerfile } from "./hash-dockerfile.js"; import { runCommand } from "./util.js"; @@ -11,11 +11,14 @@ import { runCommand } from "./util.js"; // Get a Node.js http server object that will serve information and // files for packages that should be installed into the composite // Docker image. -function getServer(langs) { +function getServer({ langs, sharedDeps }) { const app = express(); app.get("/langs", (req, res) => { res.send(langs.map((lang) => lang + "\n").join("")); }); + app.get("/shared", (req, res) => { + res.send(sharedDeps.map((lang) => lang + "\n").join("")); + }); app.use("/fs", express.static(".")); return http.createServer(app); } @@ -46,7 +49,10 @@ async function main() { }, } ); - const server = getServer(await getLangs()); + const server = getServer({ + langs: await getLangs(), + sharedDeps: await getSharedDeps(), + }); await new Promise((resolve) => server.listen(8487, "localhost", resolve)); try { await runCommand(