mirror of
https://github.com/harvard-edge/cs249r_book.git
synced 2025-12-05 19:17:28 -06:00
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:
@@ -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
|
||||
|
||||
|
||||
@@ -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'
|
||||
|
||||
# ------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user