raspberrypiで開発するのは遅い?

これを言うと怒られるかもしれないのですが、raspberrypiいちいち遅いし、面倒です。全部動くことを確認してからraspberrypiにプログラムを移動させるように、なんとか、なりませんか?

何も分からないのに、よくもそんなことが言えるわね。まあいいわ。
今回は、開発するために、繰り返し繰り返しが多いから尚更、遅いとイライラするでしょうから、macで同じような環境づくりを教えましょう
dockerのインストール

早速ですが、どんどんいきますよ。コンソールで以下を入力します
$ brew install docker
$ brew cask install docker

無事にインストールできたかどうか、コンソールで以下のように確認します。versionが表示されればOK
$ docker -v
Docker version 19.03.5, build 633a0ea

続いて起動します。
$ open /Applications/Docker.app

いろいろと出てくるかもしれませんが、それに従って最後に画面に表示される「Sign in/Create a Docker ID」ボタンをクリック


Docker IDは、英数字4から30文字
Emailは、受取可能なメール
Passwordは、9文字以上必要です
では環境構築

いよいよですね

そう、これからが本番。ちょっと大変だけれどついてきてね。
まずは、これまでのプログラムをgithubからローカルPCに落としてきます
githubのページからurlを取得します


このアドレスをコンソールで、git clone のあとにいれるんですよね
$ git clone [email protected]:(user-name)/(repo-name).git
$ cd (repo-name) ....レポジトリ名を入れ、プロジェクトのところに移した

さあ、ここからが力の見せ所よ
// 以下のようなツリーをレポジトリーに追加します
docker
├── docker-compose.yml
├── misc
├── rasp_nginx
│ ├── Dockerfile
│ ├── fastcgi.conf
│ ├── index.png
│ ├── localhost.crt
│ ├── localhost.crt.pem
│ ├── localhost.csr
│ ├── localhost.key
│ ├── localhost.key.pem
│ ├── nginx.conf
│ └── server.conf
└── rasp_web73
├── Dockerfile
└── php.ini
まずはフォルダ作成
$ mkdir docker
$ mkdir docker/rasp_web72
$ mkdir docker/rasp_nginx
$ mkdir docker/misc
$ vim docker-compose.yml
version: '2'
services:
rasp_data:
image: busybox
volumes:
- ./misc/data:/var/lib/mysql
container_name: rasp_data
rasp_mysql:
image: mysql:5.7
env_file: .env
command: mysqld --character-set-server=utf8 --collation-server=utf8_unicode_ci
ports:
- "13306:3306"
volumes_from:
- rasp_data
volumes:
# - ../application/initial.sql:/docker-entrypoint-initdb.d/initial.sql
- ../application/:/docker-entrypoint-initdb.d/
container_name: rasp_mysql
rasp_nginx:
build: ./rasp_nginx
ports:
- "80:80"
- "443:443"
volumes:
- ../:/var/www/html
links:
- rasp_web73
container_name: rasp_nginx
rasp_web73:
build: ./rasp_web73
volumes:
- ../:/var/www/html
links:
- rasp_mysql
env_file: .env
container_name: rasp_web73
続いて、.envファイルを同じ場所(docker/)に作成して保存します
# mysqlコンテナ向けの情報
MYSQL_ROOT_PASSWORD=password
MYSQL_DATABASE=mysql_database
MYSQL_USER=mysql_user
MYSQL_PASSWORD=mysql_pw
# webコンテナ向けの情報
DATABASE_HOST=mysql
DATABASE_NAME=mysql_database
DATABASE_USER=mysql_user
DATABASE_PASSWORD=mysql_pw
続いて、docker/rasp_web73にDockerfileファイルを作成します
FROM php:7.3-fpm-alpine
COPY php.ini /usr/local/etc/php/conf.d/php.ini
RUN apk upgrade --no-cache update && \
apk --no-cache upgrade && \
apk --no-cache add icu-dev autoconf make g++ gcc \
curl-dev \
libmcrypt-dev \
freetype-dev \
libjpeg-turbo-dev \
libpng-dev \
libxml2-dev \
zlib-dev \
libzip-dev \
libintl \
git \
vim \
unzip \
icu \
imagemagick-dev \
libssh2 \
libssh2-dev \
libxslt-dev \
imap-dev \
&& docker-php-ext-configure zip \
--with-libzip \
&& docker-php-ext-configure gd \
--with-freetype-dir=/usr/include/ \
--with-jpeg-dir=/usr/include/ \
--with-png-dir=/usr/include/ \
&& docker-php-ext-configure imap \
--with-imap --with-imap-ssl \
&& apk add ca-certificates wget \
&& update-ca-certificates \
&& NPROC=$(grep -c ^processor /proc/cpuinfo 2>/dev/null || 1)\
&& docker-php-ext-install -j${NPROC} \
mysqli \
iconv \
pdo \
pdo_mysql \
intl \
curl \
dom \
mbstring \
simplexml \
zip \
gd \
imap \
opcache \
&& pecl install xdebug-2.7.2 \
&& docker-php-ext-enable xdebug \
&& php -r "readfile('http://getcomposer.org/installer');" > composer-setup.php \
&& php composer-setup.php --filename=composer \
&& php -r "unlink('composer-setup.php');" \
&& mv composer /usr/local/bin/composer
同じ場所に、php.iniを配置。php.iniの内容にこだわりがなければ、上記の
COPY php.ini /usr/local/etc/php/conf.d/php.ini
という行は削除
続いて、nginxのほうの設定だが、膨大なので以下のgithubを確認して下さい。

一通り、ファイルを確保できたら、いよいよ起動します。
$ docker-compose up -d
// うまく行かない場合は、以下のように
$ docker-compose build
$ docker-compose up -d
コメント