はじめに
先日からAzure Web AppsにRailsアプリを動かすことをやっています。昨日のエントリーでAzure Web Apps上でRailsアプリを動かす方法を記しました。
無事、動かすことができたのですがデバッグなど何かとSSHができた方が嬉しいのでSSH接続する方法を記します。
昔「infrastructure as codeとかでマシンにSSHログインしたら負けと思え」と言われたことがあるのですが、あまり気にしないことにします。
これまでの内容は以下を参照してください。
- Azure Web Appsお勉強メモ(1)Azure Web AppsにてRailsアプリを動かす(2021年6月版) - miyohide's blog
- Azure Web Appsお勉強メモ(2)Azure Web AppsにてデプロイするDockerイメージをGitHub Actionsで作成してAzure Container Registryにpushする - miyohide's blog
- Azure Web Appsお勉強メモ(3)Azure Web AppsにてデプロイするDockerイメージをGitHub Actionsで作成してAzure Container Registryにpushする(2) - miyohide's blog
- Azure Web Appsお勉強メモ(4)Azure Web AppsにてデプロイするDockerイメージをAzure DevOpsで生成してAzure Container Registryに登録する - miyohide's blog
参考となる資料
マイクロソフトが公開している以下のドキュメントに「SSHを有効にする」という記述があるのでこれを参考にします。
上記ドキュメントの記述内容はapk
コマンドを使っていることからAlpine LinuxベースのDockerイメージを使ったものなので、バージョン番号しか書かれていなかったり、-slim
とついているDockerイメージを使っている場合は若干コマンドが異なります。昨日のエントリーでの例もruby:3.0.2
のDockerイメージを使っているので、上記のドキュメントから若干修正が必要となります。
設定
やるべきことは以下の5点です。
openssh-server
をインストールする- パスワードを変更する
- SSH設定ファイル(
sshd_config
)を作成し、/etc/ssh/
以下に格納する - SSHサーバーを起動する
- ポート番号2222を開ける
一個ずつやっていきます。
openssh-server
をインストールする
Dockerfile内で以下の記述を追加するだけです。
RUN apt-get update && apt-get install -y openssh-server
パスワードを変更する
これはマイクロソフトが公開しているドキュメントに書いてあるコマンドをそのまま実行します。具体的にはDockerfile内で以下の記述を追加します。
RUN echo "root:Docker!" | chpasswd
SSH設定ファイル(sshd_config
)を作成し、/etc/ssh/
以下に格納する
これもマイクロソフトが公開しているドキュメントと同じようにDockerfileに記述します。プロジェクトのルートにsshd_config
を作成し、中身をマイクロソフトが公開しているドキュメントからコピペ。Dockerfile内で以下の記述を追加します。
COPY sshd_config /etc/ssh/
SSHサーバーを起動する
Dockerfile内のENTRYPOINTで指定したシェルスクリプトentrypoint.sh
に以下の記述を追加します。
service ssh start
ポート番号2222を開ける
ポート番号2222をDockerfile内のEXPOSEに追記します。元々は
# 変更前 EXPOSE 3000
となっていたのを以下のようにするだけです。
# 変更後 EXPOSE 3000 2222
実行
ここまで設定できたら、あとはDockerイメージを作成してAzure Web Appsにデプロイします。デプロイが完了したら、Azureポータルから「開発ツール」の「SSH」から「移動」をクリックします。
すると別のタブが開いて、SSH接続できます。
Dockerイメージ内に入っているだけなので、ディレクトリ構成もDockerイメージと同じです。