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
コメント