Files
docker-slackware-builder/Dockerfile

59 lines
3.0 KiB
Docker

FROM vbatts/slackware:current
LABEL maintainer="admin@minenet.at"
ARG SLACK_REL=current
RUN FILE_LIST=$(wget --no-check-certificate -qO- http://ftp.linux.cz/pub/linux/slackware/slackware64-${SLACK_REL}/FILELIST.TXT) && \
cd /tmp && \
wget --no-check-certificate http://mirrors.slackware.com/slackware/slackware64-${SLACK_REL}$(echo "$FILE_LIST" | awk '{print $8}' | grep 'ca-certificates-[0-9]\+' | grep '\.txz$' | sed 's/^\.*//') && \
wget --no-check-certificate http://mirrors.slackware.com/slackware/slackware64-${SLACK_REL}$(echo "$FILE_LIST" | awk '{print $8}' | grep 'openssl-[0-9]\+' | grep '\.txz$' | sed 's/^\.*//') && \
wget --no-check-certificate http://mirrors.slackware.com/slackware/slackware64-${SLACK_REL}$(echo "$FILE_LIST" | awk '{print $8}' | grep 'perl-[0-9]\+' | grep '\.txz$' | sed 's/^\.*//') && \
wget --no-check-certificate http://mirrors.slackware.com/slackware/slackware64-${SLACK_REL}$(echo "$FILE_LIST" | awk '{print $8}' | grep 'coreutils-[0-9]\+' | grep '\.txz$' | sed 's/^\.*//') && \
wget --no-check-certificate http://mirrors.slackware.com/slackware/slackware64-${SLACK_REL}$(echo "$FILE_LIST" | awk '{print $8}' | grep 'dcron-[0-9]\+' | grep '\.txz$' | sed 's/^\.*//') && \
wget --no-check-certificate http://mirrors.slackware.com/slackware/slackware64-${SLACK_REL}$(echo "$FILE_LIST" | awk '{print $8}' | grep 'aaa_glibc-solibs-[0-9]\+' | grep '\.txz$' | sed 's/^\.*//') && \
installpkg * && \
/usr/sbin/update-ca-certificates --fresh
COPY installscript.sh /tmp/
ARG GO_V=1.20.1
RUN wget -q -nc --show-progress --progress=bar:force:noscroll -O /tmp/go.tar.gz https://go.dev/dl/go${GO_V}.linux-amd64.tar.gz && \
tar -C /usr/local -xvzf /tmp/go.tar.gz && \
rm -rf /tmp/go.tar.gz
RUN chmod +x /tmp/installscript.sh && \
/tmp/installscript.sh
RUN curl https://sh.rustup.rs -sSf | bash -s -- -y && \
mv /root/.cargo /opt/
RUN mkdir -p /run/sshd && \
sed -i "/#Port 22/c\Port 8022" /etc/ssh/sshd_config && \
sed -i "/#ListenAddress 0.0.0.0/c\ListenAddress 0.0.0.0" /etc/ssh/sshd_config && \
sed -i "/#HostKey \/etc\/ssh\/ssh_host_rsa_key/c\HostKey \/root\/.ssh\/ssh_host_rsa_key" /etc/ssh/sshd_config && \
sed -i "/#HostKey \/etc\/ssh\/ssh_host_ecdsa_key/c\HostKey \/root\/.ssh\/ssh_host_ecdsa_key" /etc/ssh/sshd_config && \
sed -i "/#HostKey \/etc\/ssh\/ssh_host_ed25519_key/c\HostKey \/root\/.ssh\/ssh_host_ed25519_key" /etc/ssh/sshd_config && \
sed -i "/#PermitRootLogin prohibit-password/c\PermitRootLogin yes" /etc/ssh/sshd_config
ENV DATA_DIR="/home/slackware"
ENV ROOT_PWD="password"
ENV UID=99
ENV GID=100
ENV UMASK=0000
ENV DATA_PERM=770
ENV USER="slackware"
ENV PATH="$PATH:/opt/.cargo/bin"
RUN mkdir -p $DATA_DIR && \
useradd -d $DATA_DIR -s /bin/bash $USER && \
chown -R $USER $DATA_DIR && \
ulimit -n 2048
ADD /scripts/ /opt/scripts/
RUN chmod -R 770 /opt/scripts/
#Server Start
ENTRYPOINT ["/opt/scripts/start.sh"]