RUSTをインストールしたAlpine Linux環境をDockerfileを用いて構築します。
RUSTとは、Mozilla Researchによって開発されたオープンソースのプログラミング言語です。
高い安全性とパフォーマンスが評価されています。
Alpine LinuxはmuslとBusyBoxをベースとしたLinuxディストリビューションです。
muslはMITライセンスのオペレーティングシステムの標準Cライブラリです。
BusyBoxはUNIXユーティリティを提供するソフトウェアスイートです。
Alpine Linuxはセキュリティ、シンプルさ、リソース効率を重視するユーザーに使われてます。
Alpine LinuxでRUSTを入れたのに技術的な理由はなく、最近よく聞くOSと言語を使ってみたかっただけですので推奨はしておりません。
RUSTをインストールしたAlpine Linux環境を構築するDockerfileを作成する
RUSTをインストールしたAlpine Linux環境を構築するDockerfileを作ります。
Dockerfile作成は別記事で記載したため必要あれば参照してください。
cd /home/[ユーザー名]
mkdir docker_alpine
cd docker_alpine
touch Dockerfile
vi Dockerfile
Dockerfileに下記の通り記載します。
FROM alpine:latest
RUN <<EOF
apk add curl
curl https://sh.rustup.rs -sSf | sh
apk add rust
EOF
Alpine LinuxのパッケージシステムはAPKですので、apk addでパッケージをインストールできます。
curlをインストールしています。
apk add curl
curlはネットワーク上の場所にURLを用いて様々なプロトコルでアクセスできるコマンドラインツールです。
次にRUSTパッケージをインストールします。
curl https://sh.rustup.rs -sSf | sh
curlで取得したファイルをshコマンドで実行しRUSTパッケージをインストールしています。
sオプションはcurlコマンドで不要な出力をしないようにします。
不要な出力があるとその出力までshコマンドに渡されてしまいますので指定します。
Sオプションはcurlコマンドのエラー内容を出力するようにします。
fオプションはエラー時にコマンド実行を停止するようにします。
最後にインストールしたパッケージを用いてRUSTをビルドします。
apk add rust
Dockerfileでimageを作成しimageからコンテナを作成し起動する
Dockerfileでimageを作成します。
docker build -t alpine_rust ./
docker buildコマンドでDockerfileからimageを作成できます。
tオプションでビルドするimageにタグ名をつけることができます。
タグ名は任意で私はalpine_rustにしています。
./はDockerfileのパスです。
別の場所にあるのであればそのパスを指定してください。
実行して無事imageができたらdocker runコマンドでコンテナを作ります。
docker run -itd -p [IPアドレス]:8081:80 --privileged alpine_rust /sbin/init
コンテナを作成できたらコンテナIDを確認し起動します。
docker ps -a
docker start [コンテナID]
docker exec -it [コンテナID] /bin/bash
docker psコマンドでDockerにあるコンテナを確認できます。
docker ps -a
確認したコンテナのコンテナIDを指定してdocker startコマンドを実行すれば起動します。
docker start [コンテナID]
現在のターミナル画面を起動したコンテナに接続します。
docker exec -it [コンテナID] /bin/bash
最後にrustがインストールされているか確認できたら完了です。
rustc --version
バージョンが表示されればよいです。


