feat: Enhance package detection and installation process with improved parsing and validation

This commit is contained in:
Peter Wood
2025-05-29 07:31:59 -04:00
parent d75c7c5a94
commit ed50395490
9 changed files with 460 additions and 105 deletions

View File

@@ -11,10 +11,20 @@ ENV DEBIAN_FRONTEND=noninteractive
ARG APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone \
&& apt-get update && apt-get install -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confnew" -y curl git sudo wget
&& apt-get update && apt-get install -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confnew" -y \
curl git sudo wget
# Pre-install cowsay and lolcat packages for testing
RUN apt-get update && apt-get install -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confnew" -y cowsay lolcat
# Pre-install essential packages from packages.list for faster testing
RUN apt-get update && apt-get install -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confnew" -y \
python3 \
bat \
cowsay \
lolcat \
fzf \
zsh \
nala \
fd-find \
eza
# Create logs directory with proper permissions
RUN mkdir -p /logs && chmod -R 777 /logs
@@ -28,15 +38,21 @@ WORKDIR /home/testuser
# Create directory structure for shell setup
RUN mkdir -p /home/testuser/shell/setup
RUN mkdir -p /home/testuser/shell/dotfiles
# Copy test script, startup script, and packages.list
COPY --chown=testuser:testuser test-setup.sh /home/testuser/
# Copy all necessary setup files
COPY --chown=testuser:testuser test-setup.sh /home/testuser/shell/setup/
COPY --chown=testuser:testuser startup.sh /home/testuser/
COPY --chown=testuser:testuser packages.list /home/testuser/shell/
COPY --chown=testuser:testuser setup.sh /home/testuser/shell/setup/
COPY --chown=testuser:testuser bootstrap.sh /home/testuser/shell/setup/
COPY --chown=testuser:testuser packages.list /home/testuser/shell/setup/
COPY --chown=testuser:testuser my-aliases.zsh.template /home/testuser/shell/dotfiles/
# Make scripts executable
RUN chmod +x /home/testuser/test-setup.sh
RUN chmod +x /home/testuser/shell/setup/test-setup.sh
RUN chmod +x /home/testuser/startup.sh
RUN chmod +x /home/testuser/shell/setup/setup.sh
RUN chmod +x /home/testuser/shell/setup/bootstrap.sh
CMD ["/bin/bash", "-c", "./startup.sh"]
@@ -67,14 +83,20 @@ WORKDIR /home/testuser
# Create directory structure for shell setup
RUN mkdir -p /home/testuser/shell/setup
RUN mkdir -p /home/testuser/shell/dotfiles
# Copy test script, startup script, and packages.list
COPY --chown=testuser:testuser test-setup.sh /home/testuser/
COPY --chown=testuser:testuser startup.sh /home/testuser/
COPY --chown=testuser:testuser packages.list /home/testuser/shell/
# Copy all necessary setup files
COPY --chown=testuser:testuser test-setup.sh /home/testuser/shell/setup/
COPY --chown=testuser:testuser startup.sh /home/testuser/
COPY --chown=testuser:testuser setup.sh /home/testuser/shell/setup/
COPY --chown=testuser:testuser bootstrap.sh /home/testuser/shell/setup/
COPY --chown=testuser:testuser packages.list /home/testuser/shell/setup/
COPY --chown=testuser:testuser my-aliases.zsh.template /home/testuser/shell/dotfiles/
# Make scripts executable
RUN chmod +x /home/testuser/test-setup.sh
RUN chmod +x /home/testuser/shell/setup/test-setup.sh
RUN chmod +x /home/testuser/startup.sh
RUN chmod +x /home/testuser/shell/setup/setup.sh
RUN chmod +x /home/testuser/shell/setup/bootstrap.sh
CMD ["/bin/bash", "-c", "./startup.sh"]