環境構築

Docker(mw)

MySQL8環境ではSequel Pro ではなく Sequel Aceを使用してください (Sequel Proでは動かないため)

〇〇〇〇/Dockerfile

# FROM mysql:8.0.31

# FROM php:5.6-apache
FROM php:7.4.8-apache

RUN apt-get update && apt-get install -y \
    libonig-dev \
  && docker-php-ext-install pdo_mysql mysqli

#COPY ./config/php/php.ini /usr/local/etc/php/

# Install modules
COPY --from=mlocati/php-extension-installer /usr/bin/install-php-extensions /usr/local/bin/

RUN install-php-extensions gd xdebug mysqli

RUN cp /usr/local/etc/php/php.ini-development /usr/local/etc/php/php.ini
RUN echo "date.timezone = Asia/Tokyo" >> /usr/local/etc/php/php.ini

# Install composer
RUN curl -sS https://getcomposer.org/installer \
        | php -- --install-dir=/usr/local/bin \
        && mv /usr/local/bin/composer.phar /usr/local/bin/composer

# Configure apache
RUN echo "error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT" >> /usr/local/etc/php/conf.d/error.ini
RUN echo "log_errors = On" >> /usr/local/etc/php/conf.d/error.ini
RUN a2enmod rewrite && \
	a2enmod headers

RUN apt-get update && apt-get install -y wget libxrender1 libfontconfig1 libx11-dev libjpeg62-turbo libxtst6 fontconfig xfonts-75dpi xfonts-base libzip-dev zip
RUN docker-php-ext-install zip
RUN docker-php-ext-install bcmath

RUN wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox_0.12.6-1.stretch_arm64.deb && \
	dpkg -i wkhtmltox_0.12.6-1.stretch_arm64.deb

COPY src/assets/fonts/notoserifjp/NotoSerifJP-Light.otf /usr/share/fonts/
COPY src/assets/fonts/notoserifjp/NotoSerifJP-SemiBold.otf /usr/share/fonts/
RUN fc-cache -fv

〇〇〇〇/docker-compose.ymlを以下に変更

version: '2.3'
services:
  apache:
    build: .
    container_name: apache-php
    ports:
      - "80:80"
    volumes:
      - "$PWD/src:/var/www/html"
    restart: unless-stopped
    networks:
      - lemp-network

  mysql:
    #image: mysql:8.0
    image: mysql@sha256:96439dd0d8d085cd90c8001be2c9dde07b8a68b472bd20efcbe3df78cff66492
    # 5.7.10
    #image: mysql@sha256:fa0a2a24837ce31cb719d4381849471d0fb0f4fd0f2209db403cc29c61dc9cba
    # 5.6
    #image: mysql@sha256:574b626bb89112cc406c23471ab968de7be5e598eecb5ecc3eecaaf0610d8050
    # command: --character-set-server=utf8mb4 --default-character-set=utf8mb4
    command: --innodb_use_native_aio=0
    container_name: mysql
    ports:
      - "3306:3306"
    environment: 
      MYSQL_ROOT_PASSWORD: root
      MYSQL_USER: school_dev
      MYSQL_PASSWORD: school_dev
      MYSQL_DATABASE: school_dev
    volumes:
      - ./mysql/init/:/docker-entrypoint-initdb.d
      # - ./mysql/var:/var/lib/mysql
    restart: always
    networks:
      - lemp-network

  mailhog:
    image: mailhog/mailhog:latest
    container_name: mailhog
    ports:
     - "1025:1025"
     - "8025:8025"
    restart: always
    networks:
     - lemp-network

networks:
  lemp-network:
    driver: bridge

docker内にある既存の環境と新しい環境を共存させたい場合はapache,mysql,mailhogのcontainer_nameを既存の環境と重複しない名前に変更する。
ポートを切り分けたい場合は7行目のポート番号を変更

dockerfile docker-compose.yml があるディレクトリdocker(複製版)で

docker-compose up -d

※sqlファイルを以下のフォルダに置いておく

/Users/fukunagashinichi/work/docker-codeigniter/mysql/init

Docker containerからhostのMySQL8に接続する

brew update      

fukunagashinichi@MWPC-199 work % brew update        

Already up-to-date.

インストール

brew install mysql

バージョン確認

mysql –version    

mysql  Ver 8.0.31 for macos13.0 on arm64 (Homebrew)

MYSQL開始/stop

mysql.server start

Starting MySQL

.. SUCCESS! 

mysql.server stop

Shutting down MySQL

.. SUCCESS! 

MYSQL状態

mysql.server status

 SUCCESS! MySQL running (5558)

MySQLを再起動します。

mysql.server restart

パスワードを設定(ルートのパスワード設定は必要なし、ここは飛ばしてOK)

#任意のディレクトリで以下のコマンド

パスワードを設定(ルートのパスワード設定は必要なし、ここは飛ばしてOK)

#任意のディレクトリで以下のコマンド

mysql -u root -p 

mysql > USE mysql;

mysql > ALTER USER 'root'@'localhost' identified BY '(ここは新しいパスワード)';

school_dev ユーザでログイン

fukunagashinichi@MWPC-199 work % mysql -u school_dev -p

データベース作成

mysql> CREATE DATABASE school_dev;

Docker(Angular2,4)

OSイメージのインストール

docker  pull  centos:centos7

centos6と8はサポート切れでyumがうまく動かない。。

OSイメージの確認

docker images

REPOSITORY と TAG は構築の際に利用

コンテナ作成・起動

docker run --privileged -i -t -d --name="{コンテナの名前(なんでもいい)}" {リポジトリ名}:{タグ名} /bin/bash

今回の場合は、docker run –privileged -i -t -d –name=”CentOS7″ centos:centos7 /bin/bash

構築成功後にDockerfileを使ってイメージをビルドしたため、コンテナ内での構築は省略

Dockerfile

# CentOSをベースに
FROM centos:centos7

# 作成者
MAINTAINER Tomohito Horikoshi

# 最新化
# RUN yum update -y && yum -y upgrade
# RUN コマンドを使って必要そうなコマンドを yum コマンドを実行してインストールする
RUN yum install -y sudo passwd which unzip wget curl perl jq git
RUN rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

# Nodeのインストール
RUN curl --silent --location https://rpm.nodesource.com/setup_6.x | bash -
RUN yum install -y nodejs

# ビルドツール
RUN yum install -y gcc gcc-c++ make

# nコマンド(nodeのバージョン管理)
RUN npm install -g n

# node v10.18.0をインストール
RUN n v10.18.0

# yarnのインストール
RUN npm install -g yarn

# Angula4のインストーる
RUN yarn global add @angular/cli@1.0.2

# vimインストール
RUN yum -y install vim

# gitのインストール
RUN yum -y install git

# TODO:リポジトリからソースをDL

# 起動設定
ENTRYPOINT /bin/bash && tail -f /dev/null

CMD /sbin/init

詳細

nginxインストール

RUN rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

node.jsインストール

Nodejsのインストールは外部のソースをインストールするためcurlコマンドを叩いてそのあとにyumコマンドで行う。
curl --silent --location https://rpm.nodesource.com/setup_4.x | bash -
yum -y install nodejs
yum -y install gcc-c++ make

npmコマンドを使用してnコマンドyarnをインストール

# nコマンド(nodeのバージョン管理)
RUN npm install -g n

# node v10.18.0をインストール
RUN n v10.18.0

# yarnのインストール
RUN npm install -g yarn

angular cliとその他コマンドをインストール

# Angula4のインストーる
RUN yarn global add @angular/cli@1.0.2

# vimインストール
RUN yum -y install vim

# gitのインストール
RUN yum -y install git

イメージをビルドする

dockerflileがある場所で、実行する。

-tでリポジトリとタグ設定

docker build -t admiral/management-front:1.0

実行後、イメージを確認

コンテナ起動

docker  run  --privileged  -i  -t  -d  -p 8080:80 -p 4200:4200  --name="CentOS7" -v ~/a_workspace:/a_workspace  admiral/management:1.0 /bin/bash

※–privilegedは特権起動のフラグになります。これを入れないと/bin/bashでserviceコマンドが使えない。

詳細

docker run --privileged  -i -t -d --name="{コンテナの名前(任意)}" {ビルドしたリポジトリ名}:{ビルドしたタグ名} /bin/bash

Angular起動(ngコマンド)

srcまで降りてから起動

# ng --version               mockモード
# ng serve --host 0.0.0.0      ↓
# ng serve --host 0.0.0.0 --environment=mock

コメント

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