ブログ

Armadillo Base OS:go言語でアプリケーションを作成する(コマンドライン版)

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


以上で完了となります。