at_shinya.matsumoto
2025年5月29日 17時33分
本ブログではArmadillo Base OSでgo言語でアプリケーションを作成する方法を紹介します。
VScodeで開発する場合はこちらのブログを参照下さい。
go言語でアプリケーションを作成する(VScode版)
本ブログではHello Worldを作ってみます。
作成手順
Armadilloとコンソールの接続方法は製品マニュアルを参照下さい。
1.Armadilloのコンテナ保存設定をeMMCに変更する
2.元となるコンテナイメージを取得する
3.コンテナ起動ファイルを作成する
4.コンテナを起動~中に入る
5.アプリケーションを作成する
6.コンテナイメージの保存~設定変更
7.コンテナ起動ファイルの編集
1.Armadilloのコンテナ保存設定をeMMCに変更する
動いているコンテナを停止し、コンテナ保存設定をeMMCに変更します。
[armadillo]# podman stop -a
[armadillo]# abos-ctrl podman-storage --disk
2.元となるコンテナイメージを取得する
ここでは例としてdebian:buulseye-slimというコンテナイメージを使用します。
[armadillo]# podman pull docker.io/debian:bullseye-slim
3.コンテナ起動ファイルを作成する
今回は必要最低限の起動ファイルを作成します。下記のファイルを作成します。
コンテナ起動ファイルの詳細は製品マニュアルを参照下さい。
コンテナ起動ファイルを作成する
[armadillo]# cat /etc/atmark/containers/test_go.conf
set_image debian:bullseye-slim
add_args -it
set_autostart no
set_command bash
コンテナ起動ファイルをeMMCに保存する(電源OFFでも保持)
[armadillo]# persist_file /etc/atmark/containers/test_go.conf
4.コンテナを起動~中に入る
コンテナ起動
[armadillo]# podman_start test_go
コンテナに入る
[armadillo]# podman attach test_go
5.アプリケーションを作成する
アプリケーションを作成します。
まず必要なパッケージをインストールし、go言語のソースファイルを作成します。
パッケージをインストール
[container]# apt update && apt upgrade -y
[container]# apt install vim-tiny golang
ソースファイル作成
[container]# cd
[container]# vi hello.go
package main
import "fmt"
func main() {
fmt.Printf("Hello World\n")
}
動作確認
[container]# go run hello.go
Hello World
実行ファイルを作成する場合は下記を実行します。
[container]# go build hello.go
[container]# ls
hello hello.go
[container]# ./hello
Hello World
6.コンテナイメージの保存~設定変更
デバッグが完了したらコンテナから出て、コンテナをコンテナイメージ化します。
また、自動起動設定も変更し、Armadillo起動時にアプリが実行できるようにします。
コンテナから出る
[container]# exit
作成したコンテナをコンテナイメージとして保存(ここではdebian:goという名前で保存)
[aramdillo]# podman commit test_go debian:go
保存したコンテナイメージを確認
[aramdillo]# podman images
REPOSITORY TAG IMAGE ID CREATED SIZE
localhost/debian go 515b9da88144 About a minute ago 766 MB
docker.io/library/debian bullseye-slim 95d51970187a 9 days ago 78.1 MB
作成したコンテナの削除
[aramdillo]# podman rm test_go
コンテナの保存先の変更
[aramdillo]# abos-ctrl podman-storage --tmpfs
7.コンテナ起動ファイルの編集
最後にコンテナ起動ファイルを変更すれば、Armadillo起動時にアプリケーションが自動起動します。
※今回のアプリケーションは無限ループしていない為、単発で終了となります。
コンテナ起動ファイルの編集
[armadillo]# vi /etc/atmark/containers/test_go.conf
set_image debian:go //作成したコンテナイメージに変更
set_command go run /root/hello.go //実行ファイルの場合は set_command /root/hello
コンテナ起動ファイルをeMMCに保存する(電源OFFでも保持)
[armadillo]# persist_file /etc/atmark/containers/test_go.conf
動作確認し、ログにHello Worldが表示されていれば完了です。
コンテナ起動
[armadillo]# podman_start test_go
コンテナのログ出力確認
[armadillo]# podman logs test_go
Hello World
以上で完了となります。