47 lines
1.1 KiB
Docker
47 lines
1.1 KiB
Docker
# Final stage
|
|
FROM ubuntu:24.04
|
|
|
|
ENV DEBIAN_FRONTEND=noninteractive
|
|
|
|
# Install runtime dependencies
|
|
RUN apt-get update && apt-get install -y \
|
|
ca-certificates \
|
|
tzdata \
|
|
docker.io \
|
|
bash \
|
|
wget \
|
|
curl \
|
|
openssh-server \
|
|
sudo
|
|
|
|
# Configure SSH
|
|
RUN mkdir /var/run/sshd
|
|
RUN echo 'PasswordAuthentication yes' >> /etc/ssh/sshd_config
|
|
|
|
# Create startup script
|
|
RUN echo '#!/bin/bash\n\
|
|
if [ -n "$SSH_USER" ]; then\n\
|
|
if [ "$SSH_USER" = "root" ]; then\n\
|
|
echo "PermitRootLogin yes" >> /etc/ssh/sshd_config\n\
|
|
if [ -n "$SSH_PASSWORD" ]; then\n\
|
|
echo "root:$SSH_PASSWORD" | chpasswd\n\
|
|
fi\n\
|
|
else\n\
|
|
echo "PermitRootLogin no" >> /etc/ssh/sshd_config\n\
|
|
useradd -m -s /bin/bash $SSH_USER\n\
|
|
if [ -n "$SSH_PASSWORD" ]; then\n\
|
|
echo "$SSH_USER:$SSH_PASSWORD" | chpasswd\n\
|
|
fi\n\
|
|
if [ -n "$SUDO_ACCESS" ] && [ "$SUDO_ACCESS" = "true" ]; then\n\
|
|
echo "$SSH_USER ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/$SSH_USER\n\
|
|
fi\n\
|
|
fi\n\
|
|
fi\n\
|
|
/usr/sbin/sshd -D' > /start.sh
|
|
|
|
RUN chmod +x /start.sh
|
|
|
|
EXPOSE 22
|
|
|
|
CMD ["/start.sh"]
|