fix: replace ARG variables with hardcoded paths in Dockerfiles [skip ci]

ARG variables have scope issues across RUN commands in Docker, causing
COPY commands to fail. Since these paths are stable, hardcoding them
is simpler and more reliable.
This commit is contained in:
Vijay Janapa Reddi
2025-12-05 16:40:40 -08:00
parent c2773e6688
commit 327077185d
2 changed files with 10 additions and 26 deletions

View File

@@ -5,11 +5,7 @@
FROM ubuntu:22.04
# === PATH CONFIGURATION ===
# Define source paths as build arguments (can be overridden at build time)
ARG BOOK_ROOT=book
ARG BOOK_TOOLS=${BOOK_ROOT}/tools
ARG BOOK_DEPS=${BOOK_TOOLS}/dependencies
ARG BOOK_DOCKER=${BOOK_ROOT}/docker
# Paths are hardcoded since they're stable and ARG scope causes issues in multi-layer builds
# Set environment variables
ENV DEBIAN_FRONTEND=noninteractive
@@ -21,15 +17,11 @@ ENV LC_ALL=en_US.UTF-8
ENV PATH=/usr/local/texlive/bin/x86_64-linux:$PATH
# === PHASE 0: COPY DEPENDENCY FILES EARLY (for better cache efficiency) ===
# Re-declare ARG variables for COPY commands (ARG scope is per-stage)
ARG BOOK_DEPS
ARG BOOK_DOCKER
# Copy dependency files early for better cache efficiency
COPY ${BOOK_DEPS}/requirements.txt /tmp/requirements.txt
COPY ${BOOK_DEPS}/install_packages.R /tmp/install_packages.R
COPY ${BOOK_DEPS}/tl_packages /tmp/tl_packages
COPY ${BOOK_DOCKER}/linux/verify_r_packages.R /tmp/verify_r_packages.R
COPY book/tools/dependencies/requirements.txt /tmp/requirements.txt
COPY book/tools/dependencies/install_packages.R /tmp/install_packages.R
COPY book/tools/dependencies/tl_packages /tmp/tl_packages
COPY book/docker/linux/verify_r_packages.R /tmp/verify_r_packages.R
# Note: Python packages are installed later in Phase 10

View File

@@ -14,11 +14,7 @@ FROM mcr.microsoft.com/windows/server:ltsc2022
SHELL ["powershell.exe", "-NoLogo", "-ExecutionPolicy", "Bypass", "-Command"]
# === PATH CONFIGURATION ===
# Define source paths as build arguments (can be overridden at build time)
ARG BOOK_ROOT=book
ARG BOOK_TOOLS=${BOOK_ROOT}/tools
ARG BOOK_DEPS=${BOOK_TOOLS}/dependencies
ARG BOOK_DOCKER=${BOOK_ROOT}/docker
# Paths are hardcoded since they're stable and ARG scope causes issues in multi-layer builds
# ------------------------------------------------------------
# PHASE 0: Base dirs and env (same as quarto-build workflow)
@@ -96,14 +92,10 @@ RUN Write-Host '=== STARTING CHOCOLATEY INSTALLATION ===' ; `
# ------------------------------------------------------------
# PHASE 3: Copy dependency files (same as quarto-build workflow)
# ------------------------------------------------------------
# Re-declare ARG variables for COPY commands (ARG scope is per-stage)
ARG BOOK_DEPS
ARG BOOK_DOCKER
COPY ${BOOK_DEPS}/requirements.txt C:/temp/requirements.txt
COPY ${BOOK_DEPS}/install_packages.R C:/temp/install_packages.R
COPY ${BOOK_DEPS}/tl_packages C:/temp/tl_packages
COPY ${BOOK_DOCKER}/windows/verify_r_packages.R C:/temp/verify_r_packages.R
COPY book/tools/dependencies/requirements.txt C:/temp/requirements.txt
COPY book/tools/dependencies/install_packages.R C:/temp/install_packages.R
COPY book/tools/dependencies/tl_packages C:/temp/tl_packages
COPY book/docker/windows/verify_r_packages.R C:/temp/verify_r_packages.R
RUN Write-Host '✅ Dependency file copy complete'
# ------------------------------------------------------------