knaka Tech-Blog

AI, IoT, DIYエレクトロニクス, データサイエンスについて投稿予定です。

Raspberry Pi に docker環境を設置する

index:

概要:

前の Laravel 5.8 関係で、
raspbery piに docker環境 追加するメモとなります
構成は、php7.3 ,mysql , nginx

・下記の、docker-compose 追加が作業時間が多めでした。。
 参考までに。数時間かかったので 要注意です。

環境

raspbery pi 2
php7.3
Laravel 5.8
mysql
docker
docker-compose

version

pi@raspberrypi:~/tmp $ uname -a
Linux raspberrypi 4.14.98-v7+ #1200 SMP Tue Feb 12 20:27:48 GMT 2019 armv7l GNU/Linux

pi@raspberrypi:~/tmp $ cat /etc/os-release
PRETTY_NAME="Raspbian GNU/Linux 9 (stretch)"
NAME="Raspbian GNU/Linux"
VERSION_ID="9"
VERSION="9 (stretch)"
ID=raspbian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"

pi@raspberrypi:~/tmp $ docker --version
Docker version 19.03.5, build 633a0ea

docker-compose 追加

ビルドは、1時間以上 だった気がします。

git clone https://github.com/docker/compose.git
cd compose
git checkout 1.25.0

./script/build/linux

・バイナリが、ビルドされるようです

$ cd dist
$ ./docker-compose-Linux-armv7l version

/usr/local/bin にコピーする場合、

$ sudo cp docker-compose-Linux-armv7l /usr/local/bin/docker-compose
$ cd /usr/local/bin
$ sudo chown root:root docker-compose
$ sudo chmod 755 docker-compose

参考のdocker 設定

github.com

参考の docker-compose.yml

https://github.com/kuc-arc-f/docker_raspi_lara58/blob/master/docker-compose.yml

version: '3'

services:
 web:
    build: ./docker-nginx
    ports:
        - 80:80
    depends_on:
        - app
    volumes:
        - ./:/var/www/html
        - ./docker-nginx/default.conf:/etc/nginx/conf.d/default.conf
    links:
        - app
 app:
    build: ./docker-php
    depends_on:
        - db
    links:
        - db
    volumes:
        - ./:/var/www/html
 db:
    image: hypriot/rpi-mysql
    ports:
      - 3306:3306
    environment:
      MYSQL_ROOT_PASSWORD: root         #
      MYSQL_DATABASE: laravel         #
      MYSQL_USER: db_user           #ユーザ名
      MYSQL_PASSWORD: password   #ユーザ用パスワード

コンテナ起動

docker-compose up -d

・こちらも、以上30分以上は。起動処理が継続してました。注意です

・nginx がタイムアウトになる場合が、有りましたが。
再度、起動すると。エラーが消えました

============================
ERROR: for docker_raspi_lara58_web_1 UnixHTTPConnectionPool(host='localhost', port=None): Read timed out. (read timeout=60)

ERROR: for web UnixHTTPConnectionPool(host='localhost', port=None): Read timed out. (read timeout=60)
ERROR: An HTTP request took too long to complete. Retry with --verbose to obtain debug information.
If you encounter this issue regularly because of slow network conditions, consider setting COMPOSE_HTTP_TIMEOUT to a higher value (current value: 60).

============================

参考ページです

knaka0209.hatenablog.com