FROM docker:28-dind # Встановлення пакетів RUN apk add --no-cache \ openssh-server \ git \ sudo \ bash \ curl \ htop \ shadow # Create the plugin directory and install the Docker Compose plugin RUN mkdir -p /usr/libexec/docker/cli-plugins \ && curl -SL https://github.com/docker/compose/releases/latest/download/docker-compose-linux-x86_64 \ -o /usr/libexec/docker/cli-plugins/docker-compose \ && chmod +x /usr/libexec/docker/cli-plugins/docker-compose # (Optional) Verify installation RUN docker compose version # Створення користувача з домашньою директорією RUN useradd -m -s /bin/bash -G docker dockeruser RUN echo "dockeruser:dockerpass" | chpasswd # Налаштування sudo без пароля для docker команд RUN echo "dockeruser ALL=(ALL) NOPASSWD: /usr/local/bin/docker*" >> /etc/sudoers && \ echo "dockeruser ALL=(ALL) NOPASSWD: /usr/bin/docker*" >> /etc/sudoers # Налаштування SSH RUN ssh-keygen -A && \ mkdir -p /var/run/sshd && \ sed -i 's/#Port 22/Port 22/' /etc/ssh/sshd_config && \ sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin no/' /etc/ssh/sshd_config && \ sed -i 's/#PasswordAuthentication yes/PasswordAuthentication yes/' /etc/ssh/sshd_config && \ sed -i 's/#PubkeyAuthentication yes/PubkeyAuthentication yes/' /etc/ssh/sshd_config && \ sed -i 's/AllowTcpForwarding no/AllowTcpForwarding yes/' /etc/ssh/sshd_config # Створення SSH директорії для користувача RUN mkdir -p /home/dockeruser/.ssh && \ chown dockeruser:dockeruser /home/dockeruser/.ssh && \ chmod 700 /home/dockeruser/.ssh # Налаштування bashrc RUN echo 'export PATH=$PATH:/usr/local/bin' >> /home/dockeruser/.bashrc && \ echo 'alias ll="ls -la"' >> /home/dockeruser/.bashrc && \ echo 'alias dps="docker ps --format \"table {{.Names}}\t{{.Image}}\t{{.Status}}\t{{.Ports}}\""' >> /home/dockeruser/.bashrc && \ echo 'alias dimg="docker images --format \"table {{.Repository}}\t{{.Tag}}\t{{.Size}}\""' >> /home/dockeruser/.bashrc && \ echo 'alias dcup="docker-compose up -d"' >> /home/dockeruser/.bashrc && \ echo 'alias dcdown="docker-compose down"' >> /home/dockeruser/.bashrc # Створення робочих директорій RUN mkdir -p /home/dockeruser/{projects,scripts,logs} && \ chown -R dockeruser:dockeruser /home/dockeruser # Копіювання startup скрипта COPY entrypoint.sh /entrypoint.sh RUN chmod +x /entrypoint.sh # Build Labshock RUN git clone https://github.com/zakharb/labshock.git RUN cd labshock/labshock EXPOSE 22 2222 443 8080 1881 5911 3443 1443 2443 4443 5443 1234 ENTRYPOINT ["/entrypoint.sh"] # docker run --name ot -p 2222:2222 -p 443:443 -p 8080:8080 -p 1881:1881 -p 5911:5911 -p 3443:3443 -p 1443:1443 -p 2443:2443 -p 4443:4443 -p 5443:5443 --privileged -d labshock:latest