`; resultsHTML += results .map((item) => { let excerpt = item.excerpt; if (excerpt.length > 200) { excerpt = excerpt.substring(0, 200); } return `
${item.meta.title}

…${excerpt}…

`; }) .join(""); if (resultsLength > 5) { resultsHTML += ``; } searchBarResults.innerHTML = resultsHTML; } } searchBarInput.addEventListener("input", search); if (window.heap !== undefined) { searchBarResults.addEventListener("click", function (event) { if (event.target.tagName === "A" && event.target.closest(".link")) { const searchQuery = event.target.getAttribute("data-query"); const resultIndex = event.target.getAttribute("data-index"); const url = new URL(event.target.href); const properties = { docs_search_target_path: url.pathname, docs_search_target_title: event.target.textContent, docs_search_query_text: searchQuery, docs_search_target_index: resultIndex, docs_search_source_path: window.location.pathname, docs_search_source_title: document.title, }; heap.track("Docs - Search - Click - Result Link", properties); } }); } });
Share feedback
Answers are generated based on the documentation.

WorkdirRelativePath

Table of contents

Output

Relative workdir 'app/src' can have unexpected results if the base image changes

Description

When specifying WORKDIR in a build stage, you can use an absolute path, like /build, or a relative path, like ./build. Using a relative path means that the working directory is relative to whatever the previous working directory was. So if your base image uses /usr/local/foo as a working directory, and you specify a relative directory like WORKDIR build, the effective working directory becomes /usr/local/foo/build.

The WorkdirRelativePath build rule warns you if you use a WORKDIR with a relative path without first specifying an absolute path in the same Dockerfile. The rationale for this rule is that using a relative working directory for base image built externally is prone to breaking, since working directory may change upstream without warning, resulting in a completely different directory hierarchy for your build.

Examples

❌ Bad: this assumes that WORKDIR in the base image is / (if that changes upstream, the web stage is broken).

FROM nginx AS web
WORKDIR usr/share/nginx/html
COPY public .

✅ Good: a leading slash ensures that WORKDIR always ends up at the desired path.

FROM nginx AS web
WORKDIR /usr/share/nginx/html
COPY public .