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

→ Ссылка