Skip to content
This repository has been archived by the owner on Nov 30, 2023. It is now read-only.

Commit

Permalink
Resolve #944
Browse files Browse the repository at this point in the history
  • Loading branch information
Chuxel authored Jul 13, 2021
1 parent 6a8fe8d commit 29a1d95
Show file tree
Hide file tree
Showing 4 changed files with 25 additions and 5 deletions.
22 changes: 20 additions & 2 deletions build/src/utils/config.js
Original file line number Diff line number Diff line change
Expand Up @@ -469,10 +469,28 @@ function getParentTagForVersion(definitionId, version, registry, registryPath, v
let parentId = config.definitionBuildSettings[definitionId].parent;
if (parentId) {
if(typeof parentId !== 'string') {
// Use variant to figure out correct parent, or return first if no variant
// Use variant to figure out correct parent, or return first parent if child has no variant
parentId = variant ? parentId[variant] : parentId[Object.keys(parentId)[0]];
}
return getTagsForVersion(parentId, version, registry, registryPath, variant)[0];

// Determine right parent variant to use (assuming there are variants)
const parentVariantList = getVariants(parentId);
let parentVariant;
if(parentVariantList) {
// If a variant is specified in the parentVariant property in build, use it - otherwise default to the child definition's variant
parentVariant = config.definitionBuildSettings[definitionId].parentVariant || variant;
if(typeof parentVariant !== 'string') {
// Use variant to figure out correct variant it not the same across all parents, or return first variant if child has no variant
parentVariant = variant ? parentVariant[variant] : parentVariant[Object.keys(parentId)[0]];
}
if(!parentVariantList.includes(parentVariant)) {
throw `Unable to determine variant for parent. Variant ${parentVariant} is not in ${parentId} list: ${parentVariantList}`;
}
}

// Parent image version may be different than child's
const parentVersion = getVersionFromRelease(version, definitionId);
return getTagsForVersion(parentId, parentVersion, registry, registryPath, parentVariant)[0];
}
return null;
}
Expand Down
3 changes: 2 additions & 1 deletion containers/java-8/definition-manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,13 @@
"latest": false,
"rootDistro": "debian",
"parent": "java",
"parentVariant": "11",
"tags": [
"java:${VERSION}-8"
]
},
"dependencies": {
"image": "openjdk:8-jdk-buster",
"image": "mcr.microsoft.com/vscode/devcontainers/java:11",
"imageLink": "https://hub.docker.com/_/java",
"apt": [{
"cgIgnore": false,
Expand Down
2 changes: 1 addition & 1 deletion containers/jekyll/.devcontainer/base.Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM mcr.microsoft.com/vscode/devcontainers/ruby:2
FROM mcr.microsoft.com/vscode/devcontainers/ruby:2.7
COPY library-scripts/meta.env /usr/local/etc/vscode-dev-containers

# ENV Variables required by Jekyll
Expand Down
3 changes: 2 additions & 1 deletion containers/jekyll/definition-manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,14 @@
"build": {
"latest": true,
"parent": "ruby",
"parentVariant": "2.7",
"rootDistro": "debian",
"tags": [
"jekyll:${VERSION}"
]
},
"dependencies": {
"image": "mcr.microsoft.com/vscode/devcontainers/ruby:2",
"image": "mcr.microsoft.com/vscode/devcontainers/ruby:2.7",
"imageLink": "https://github.com/microsoft/vscode-dev-containers",
"debian": [{
"cgIgnore": false,
Expand Down

0 comments on commit 29a1d95

Please sign in to comment.