FROM ubuntu:16.04 ENV DEBIAN_FRONTEND=noninteractive # 필요한 패키지 설치 RUN apt-get update && apt-get install -y \ wget \ build-essential \ zlib1g-dev \ libssl-dev \ libcurl4-openssl-dev \ libexpat1-dev \ gettext \ openssh-server \ sudo \ vim # git 2.12.2 다운로드 및 설치 RUN cd /tmp && \ wget https://github.com/git/git/archive/v2.12.2.tar.gz && \ tar -zxvf v2.12.2.tar.gz && \ cd git-2.12.2 && \ make prefix=/usr/local all && \ make prefix=/usr/local install # SSH 세팅 RUN mkdir /var/run/sshd # git 사용자 추가 및 git-shell 설정 RUN useradd -m -d /home/git -s /usr/bin/git-shell git && \ echo "git:gitpass" | chpasswd # SSH 키 디렉토리 설정 RUN mkdir /home/git/.ssh && \ chmod 700 /home/git/.ssh && \ chown git:git /home/git/.ssh # git-shell 전용 명령 디렉토리 RUN mkdir /home/git/git-shell-commands && \ touch /home/git/git-shell-commands/no-interactive-login && \ echo "echo 'Interactive shell access is not allowed.'" > /home/git/git-shell-commands/no-interactive-login && \ chmod +x /home/git/git-shell-commands/no-interactive-login && \ chown -R git:git /home/git/git-shell-commands # SSH 서버 설정 수정 RUN sed -i 's@#AuthorizedKeysFile.*@AuthorizedKeysFile .ssh/authorized_keys@' /etc/ssh/sshd_config && \ 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 && \ echo "StrictModes no" >> /etc/ssh/sshd_config # 포트 오픈 EXPOSE 22 # SSH 실행 CMD ["/usr/sbin/sshd", "-D"]