ssh docker container с заменой пароля рута с помощь env в docker-compose
Нужно сбилдить контейнер с ssh, но при запуске в docker-compose указывать в env: пароль для рута. Вот мой докерфайл. Подскажите,пожалуйста, как правильно это реализовать
FROM ubuntu:latest
RUN apt update && apt install openssh-server -y
RUN echo "#!/bin/bash \n echo 'root:$password' | chpassword" > ./entrypoint.sh
RUN chmod +x ./entrypoint.sh
RUN service ssh start
EXPOSE 22
ENTRYPOINT ["./entrypoint.sh"]
CMD ["/usr/sbin/sshd","-D"]
Ответы (2 шт):
Автор решения: Hellseher
→ Ссылка
1208874.dockerfile
# File : 1208874.dockerfile
# Modified : <2020-11-24 Tue 09:56:18 GMT>
# URL : https://ru.stackoverflow.com/questions/1208874/
ARG LOGIN_PASSWORD
FROM ubuntu:latest
ARG LOGIN_PASSWORD
ENV LOGIN_PASSWORD=$LOGIN_PASSOWRD
RUN apt update && apt install openssh-server -y
RUN echo "#!/bin/bash \n env; echo 'root:\$LOGIN_PASSWORD' | chpasswd; service ssh start; service ssh status" > ./entrypoint.sh
RUN chmod +x ./entrypoint.sh
EXPOSE 22
ENTRYPOINT ["./entrypoint.sh"]
CMD ["/usr/sbin/sshd","-D"]
# End of 1208874.dockerfile
собираем запускаем
docker build --file 1208874.dockerfile --tag 1208874:latest .
docker run -d --env "LOGIN_PASSWORD=1234" --publish 2222:22 1208874:latest
Автор решения: user417675
→ Ссылка
Может кому-то пригодиться. Вот решение:
Dockerfile:
FROM ubuntu:latest
RUN apt update && apt install openssh-server -y
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh && mkdir -p /var/run/sshd && sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
EXPOSE 22
ENTRYPOINT ["/entrypoint.sh"]
CMD ["/usr/sbin/sshd", "-D"]
entrypoint.sh:
#!/bin/bash
set -e
if [ ! -z "$LOGIN_PASSWORD" ]; then
echo "root:$LOGIN_PASSWORD" | chpasswd
else
echo "root:yourpassword" | chpasswd
fi
exec "$@"
Сделал image на docker hub, vyach11/openssh-server
How to use:
docker run -d -p 54432:22 --name openssh-server -e LOGIN_PASSWORD=yourpassword --volume /your/path/to/content vyach11/openssh-server:latest
ENV: LOGIN_PASSWORD == your root password