use local/id:version-ts as docker image tag for locally built apps

This commit is contained in:
Johannes Zellner
2026-01-26 21:45:39 +01:00
parent b43daf2f08
commit ef2a94c2c8
3 changed files with 11 additions and 10 deletions

View File

@@ -163,13 +163,12 @@ async function pullImage(imageRef) {
async function buildImage(manifest) {
assert.strictEqual(typeof manifest, 'object');
const sourceArchivePath = manifest.dockerImage.slice('file:'.length);
const imageTag = `local/${manifest.id}:${manifest.version}`;
const sourceArchivePath = '/tmp/' + manifest.dockerImage.slice('local/'.length);
debug(`buildImage: building ${imageTag} from ${sourceArchivePath}`);
debug(`buildImage: building ${manifest.dockerImage} from ${sourceArchivePath}`);
const tarStream = fs.createReadStream(sourceArchivePath);
const [error, stream] = await safe(gConnection.buildImage(tarStream, { t: imageTag }));
const [error, stream] = await safe(gConnection.buildImage(tarStream, { t: manifest.dockerImage }));
if (error) throw new BoxError(BoxError.DOCKER_ERROR, `Unable to build image from ${sourceArchivePath}: ${error.message}`);
return new Promise((resolve, reject) => {
@@ -191,16 +190,14 @@ async function buildImage(manifest) {
debug(`buildImage: error ${buildError}`);
return reject(new BoxError(buildError.message.includes('no space') ? BoxError.FS_ERROR : BoxError.DOCKER_ERROR, buildError.message));
} else {
debug(`buildImage: success ${imageTag}`);
debug(`buildImage: success ${manifest.dockerImage}`);
}
// TODO we should probably use that scheme directly instead of file:....
manifest.dockerImage = imageTag;
resolve();
});
stream.on('error', (error) => {
debug(`buildImage: error building image ${imageTag}: %o`, error);
debug(`buildImage: error building image ${manifest.dockerImage}: %o`, error);
reject(new BoxError(BoxError.DOCKER_ERROR, error.message));
});
});