開発環境づくり

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を確認して下さい。

GitHub - fleuraison/docker-setting
Contribute to fleuraison/docker-setting development by creating an account on GitHub.

一通り、ファイルを確保できたら、いよいよ起動します。

$ docker-compose up -d
// うまく行かない場合は、以下のように
$ docker-compose build
$ docker-compose up -d

コメント

タイトルとURLをコピーしました