【Armadillo-IoT G4】VSCodeのRemote-SSHでコンテナに接続する

私の場合、Raspberry Pi上のアプリケーションを開発する際に、PCからVisual Studio CodeのRemote-SSHでRaspberry Piに接続してコードを書いたりデバッグしたりすることが多いです。(参照：[Visual Studio Code で Remote SSH する](https://qiita.com/nlog2n2/items/1d1358f6913249f3e186))
そのため、Armadillo-IoTゲートウェイ G4で動作させているコンテナ上でも同じことが出来るように環境を構築してみました。
Raspberry Pi OSは最初からツールがインストールされているため、そのままでもVSCodeと繋げられますがsshを始め、ツール類をインストール、設定する必要があります。

ちなみにArmadillo-IoTゲートウェイ G4のホストOS Alpine Linuxでは未対応らしくVSCodeとは繋げられません。

以下の操作はホストOSにSSH接続して行っています。

# コンテナを立ち上げる
コンテナのイメージは、アットマークテクノから[Armadillo-IoTゲートウェイ G4用に公開されているDebian Bullseyeのイメージ](https://armadillo.atmark-techno.com/resources/software/armadillo-iot-g4/container)を使用しています。ダウンロードして、ビルドしています。(参照：[Armadillo-IoTゲートウェイ G4でNode-REDを動かす](https://qiita.com/jksoft/items/751cb1528a107f028f63#npm%E3%81%A7%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB))

SSH接続用のポートをブリッジするため、コンテナを立ち上げる際に以下のオプションを追加します。
ホスト側のポート番号(60000)は他でもOKです。

```
# podman run -itd --name=develop-env \
-p 60000:22 \
localhost/at-debian-image:latest /bin/bash
```

立ち上げたコンテナに入ります。

```
# podman exec -it develop-env /bin/bash
```

# ユーザーを作る
adduserコマンドでユーザーを作ります。
設定したのはパスワードのみです。

```
# adduser develop                                                                                                                                     
Adding user `develop' ...                                                                                                                                                
Adding new group `develop' (1001) ...                                                                                                                                    
Adding new user `develop' (1001) with group `develop' ...                                                                                                                
Creating home directory `/home/develop' ...                                                                                                                              
Copying files from `/etc/skel' ...                                                                                                                                       
New password:                                                                                                                                                            
Retype new password:                                                                                                                                                     
passwd: password updated successfully                                                                                                                                    
Changing the user information for develop                                                                                                                                
Enter the new value, or press ENTER for the default                                                                                                                      
        Full Name []:                                                                                                                                                    
        Room Number []:                                                                                                                                                  
        Work Phone []:                                                                                                                                                   
        Home Phone []:                                                                                                                                                   
        Other []:                                                                                                                                                        
Is the information correct? [Y/n] Y    
```

# SSHを使えるようにする
コンテナにSSH接続できるようにするため、SSHをインストールし、設定を行います。

```
# apt install -y ssh
```

以下のフォルダを作る必要があるので作ります。

```
# mkdir /var/run/sshd
```

SSHサーバーを起動する。

```
# /usr/sbin/sshd
```

# VSCodeと接続する
VSCodeのRemote-SSHと接続し、フォルダで開くにはwgetかcurlが必要らしいのでインストールしておきます。

```
# apt install curl
```

sshの接続設定は以下にしてます。

```
Host Armadillo-IoT-G4-debian-develop
  HostName {Armadillo-IoTゲートウェイ G4のIPアドレス}
  User develop
  Port 60000
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109992/9aa69d0a-af90-bc96-7ea2-270685146c85.png)

# あとがき
コードをいじくるのはやっぱりVSCodeがやりやすいのとファイルの転送も簡単なので、これで開発が捗ります。

あと本記事とはあまり関係ありませんが、何かとsudoを使うので設定手順を書いておきます。

初期状態ではsudoそのものがインストールされていないため、インストールして、sudoグループに作成したユーザーを追加します。

```
# apt install sudo
# gpasswd -a develop sudo
```

パスワード無しでsudoが使用できるようにsudoの設定を行います。
テキストエディタはnanoをインストールして行っています。

```
# apt install -y nano
# nano /etc/sudoers
```

以下を追記

```
develop     ALL=NOPASSWD: ALL
```

これでsudoが使えるようになりました。