■ 書籍サポート%2Fやさしくはじめるラズパイ (2022-01-02)
書籍サポート/やさしくはじめるラズパイ *
何かの問題でこちらのページが表示されてしまった方は、以下のページをご覧ください:
はじめてラズパイを始めるすべての皆さんに贈るラズパイと電子工作の入門書です。
上記の本、2021年の年末に改訂したラズベリーパイの解説書籍です!!
何かの問題でこちらのページが表示されてしまった方は、以下のページをご覧ください:
はじめてラズパイを始めるすべての皆さんに贈るラズパイと電子工作の入門書です。
上記の本、2021年の年末に改訂したラズベリーパイの解説書籍です!!
M1 Macにしてみたものの、意外にもPythonで動かないライブラリがあってDockerを使うことになった。Dockerはx86_64のイメージを手軽に動かせるので便利。DockerでなくHomebrewを工夫することでもできるけど、Dockerに閉じ込めればクリーンに使えて便利。
そこで、以下のようなDockerfileを作って使う。
FROM --platform=linux/x86-64 ubuntu RUN set -x && \ apt update && \ apt install -y tzdata && \ apt install -y language-pack-ja-base language-pack-ja locales && \ locale-gen ja_JP.UTF-8 && \ apt install -y wget curl git vim && \ apt install -y python3 python3-pip && \ apt install -y build-essential libssl-dev libffi-dev python3-dev && \ apt install -y libsndfile1-dev ENV LC_ALL ja_JP.UTF-8 ENV LANG ja_JP.UTF-8 RUN set -x && \ pip3 install \ Flask==2.0.2 \ SoundFile==0.10.3.post1 \ google-cloud-core==2.1.0 \ google-cloud-speech==2.10.0 \ pyinstaller==4.5.1 \ azure-cognitiveservices-speech==1.18.0 \ grpcio-tools==1.26.0
このDockerfileをビルドするには、以下のようなコマンドを実行する。
#!/bin/bash docker build -t hoge/x86_64_my_python:latest .
起動するには以下のようにする。
#!/bin/bash LOCAL_PORT=8888 DOCKER_PORT=8888 SCR_DIR=$(cd $(dirname $0); pwd) BASE_DIR=`echo $SCR_DIR | xargs dirname` docker run \ --name hoge-server \ --rm \ -v $BASE_DIR/app_dir:/root/app_dir \ -p $LOCAL_PORT:$DOCKER_PORT \ -it hoge/x86_64_my_python:latest \ /root/app_dir/server.py $DOCKER_PORT
末尾の一行を「/bin/bash」に変えれば、シェルを起動できる。
上記を、docker-compose.ymlで管理するのも便利。
DockerでUbuntuを使ってみたメモ。
最初にDockerをインストールしておく。
# Dockerのインストール brew install --cask docker
Ubuntuイメージを検索する。
docker search ubuntu
普通にDockerでUbuntuを使う場合:
docker pull ubuntu docker run -it ubuntu
ログインしたら、aptでいつものようにインストール可能。
apt update apt install -y vim git exit # コンテナを抜ける
コンテナの一覧を表示など
docker ps -l # 最新のコンテナを表示 docker ps -a # 全てのコンテナを表示 docker start xxx # 停止したコンテナを再開 docker attach xxx # 稼働中のコンテナに入る docker rm xxx # コンテナを終了 docker images # イメージ一覧を表示 docker rmi xxx # イメージを削除 docker commit -m "何をしたか" -a "作者" コンテナID リポジトリ/イメージ名
ローカルのファイルシステムをマウントして起動。
# ユーザーフォルダを /mnt で docker run -v ~/docs:/root/docs -it IMAGE bash
なお、複数のディレクトリを指定可能なので、いつもの環境で作業したければ、.sshをマウントしておく。そうすれば、いつものSSHキーでGitHubやその他のリポジトリを操作可能。
# よく使うディレクトリをマウント docker run \ --rm \ -v ~/.ssh:/root/.ssh \ -v ~/repos:/root/repos \ -it ubuntu bash
なお「--rm」オプションをつければ、作業終了後コンテナが消えるので環境を汚すことがないので便利。--rmをつけない場合、docker rmで明示的に削除する。
Dockerfileで必要なアプリだけaptしておいたベースを1つ作っておいて、用途に合わせて使い分けが可能。
以下のようなコマンドでイメージをビルドできる。
docker build -t イメージ名/タグ名:latest .
M1 MacでDockerでUbuntuのlxdeを動かす方法のメモ。
DockerでGUI、面白かった。たぶん使わないけど、一応備忘録としてメモ。
Dockerコンテナを取得。
docker pull dorowu/ubuntu-desktop-lxde-vnc docker run --name ubuntu_desktop -p 8888:80 dorowu/ubuntu-desktop-lxde-vnc
ブラウザ「localhost:8888」にlxdeのデスクトップ画面が表示される。ターミナルでCtrl+cを押すと終了する。
Dockerはx86-64のエミュレーションモードでも動くので便利。もちろん、動作は遅くなるけれど、x86-64以外は動かないというライブラリを動かすのに便利。
docker runを行う際に、--platform=linux/amd64のオプションを付与して起動を行う。
docker run --platform=linux/amd64 ubuntu
また、Dockerfileでビルドする場合は、以下のように、「--platform」オプションを指定する。
FROM --platform=linux/x86-64 ubuntu ... RUN apt update && apt install wget ..