diff --git a/base/Dockerfile b/base/Dockerfile index 29faa29..bdbea33 100644 --- a/base/Dockerfile +++ b/base/Dockerfile @@ -1,59 +1,45 @@ -# syntax = docker/dockerfile:1.2 +# syntax = docker/dockerfile:1 FROM quay.io/archlinux/archlinux:base-devel USER root -# Docker ENV variables -# # Required -# ENV MYVNC_VNCPASS -# # Optional -# ENV MYVNC_CUSTOM_TITLE -# ENV MYVNC_PROXYPATH (eg, "/subpath/" or "/subpath") -# ENV MYVNC_VNCSHARING (eg, "true" to allow sharing (defaults to "false")) -# ENV MYVNC_VNCSERVER_HOST (eg, localhost or 192.168.1.1) -# ENV MYVNC_VNCSERVER_PORT (eg, 5900) +# Build ARG for additional packages to install (eg, openssh) +ARG addpkg -# Build ARG for additional pacman packages to install (eg, openssh) -ARG pkg +# Build ARG: use "root" for debugging +ARG debug # Install packages COPY mirrorlist /etc/pacman.d/mirrorlist -RUN pacman-key --init \ +RUN --mount=type=cache,sharing=locked,target=/var/cache/pacman \ + pacman-key --init \ && sed -i '/ParallelDownloads/c ParallelDownloads = 10' /etc/pacman.conf \ && pacman -Sy --ask 4 archlinux-keyring \ - && pacman -Su --ask 4 --needed \ - sudo bash-completion ${pkg} \ + && pacman -Su --ask 4 --needed ${addpkg} \ + sudo bash bash-completion \ inetutils python-numpy python-setuptools \ nginx-mainline \ && pacman -Scc --ask 4 \ && useradd --create-home --gid users --shell /usr/bin/bash user \ - && echo 'user ALL=(ALL:ALL) NOPASSWD: MISCELLANEOUS, /usr/bin/nginx' >/etc/sudoers.d/zz-DOCKER \ - && echo 'Defaults lecture = never' >>/etc/sudoers.d/zz-DOCKER \ + && printf '%s\n' 'user ALL=(ALL:ALL) NOPASSWD: MISCELLANEOUS, /usr/bin/nginx' \ + 'Defaults lecture = never' >/etc/sudoers.d/zz-DOCKER \ && passwd -l root >/dev/null 2>&1 \ && sed '/^http {/a\ \ include /app/nginx/\*.conf;\n\ \ types_hash_max_size 4096;\n\ \ server_names_hash_bucket_size 128;\n' -i /etc/nginx/nginx.conf \ - && mkdir -p /app/init.d /app/nginx /app/logs - -# Install noVNC -COPY novnc /app/novnc - -# Install all init scripts -COPY docker-entrypoint.sh /docker-entrypoint.sh -COPY 01-init.sh 10-novnc.sh 10-nginx.sh /app/init.d/ - -# Proper permissions -RUN chmod +x /docker-entrypoint.sh /app/init.d/* \ + && mkdir -p /app/nginx /app/logs \ && chown -R user:users /app # Default environment -USER user +USER ${debug:-user} WORKDIR /home/user +ENV HOME=/home/user ENV DISPLAY=:0 ENV SHELL=/usr/bin/bash +ENV PS1="[\u@\h \W \$?]\$ " # Expose nginx port for VNC webui EXPOSE 6900 # Docker entrypoint -ENTRYPOINT ["/docker-entrypoint.sh"] +ENTRYPOINT ["/app/entrypoint"] \ No newline at end of file