Документы по Azure могут быть немного лучше, но вы почти у цели.
Во-первых, поскольку вы используете Alpine Linux, ваши шаги в Dockerfile немного отличаются от их примера. , Примечательно, что вы используете apk add
вместо apt-get install
. Взгляните на это руководство , в котором есть примеры настройки S SH для Azure с Alpine.
RUN apk add openssh \
&& echo "root:Docker!" | chpasswd
COPY ./path/to/sshd_config /etc/ssh/
sshd_config
должно выглядеть примерно так:
Port 2222
ListenAddress 0.0.0.0
LoginGraceTime 180
X11Forwarding yes
Ciphers aes128-cbc,3des-cbc,aes256-cbc,aes128-ctr,aes192-ctr,aes256-ctr
MACs hmac-sha1,hmac-sha1-96
StrictModes yes
SyslogFacility DAEMON
PasswordAuthentication yes
PermitEmptyPasswords no
PermitRootLogin yes
Subsystem sftp internal-sftp
PidFile /etc/ssh/run/sshd.pid
HostKey /etc/ssh/ssh_host_rsa_key
Последний шаг - убедиться, что sshd
запускается при запуске контейнера. Хотя вы правы, что CMD
может принимать только одну команду, эта команда может быть сценарием, который выполняет несколько вещей. По умолчанию sshd
разветвляет фоновый процесс, а не работает на переднем плане, так что у вас должно быть все в порядке. Например, ваша команда запуска может выглядеть следующим образом:
#!/bin/sh
# ...
# Start sshd for Azure
ssh-keygen -f /etc/ssh/ssh_host_rsa_key -N '' -t rsa
mkdir -p /etc/ssh/run
/usr/sbin/sshd
# Run any additional commands like ./camunda.sh
Azure имеет несколько репозиториев с полными примерами проектов, включая установку S SH. Вот хороший пример , хотя это Ubuntu, а ваш контейнер Alpine, так что он немного другой.