dockerでwordpressサイトを開発してみよう

50
DockerWordPressサイトを 開発してみよう @mookjp

Upload: mookjp

Post on 16-Jul-2015

4.078 views

Category:

Software


1 download

TRANSCRIPT

  • DockerWordPress @mookjp

  • @mookjp https://github.com/mookjp OL

  • 1.Docker 2.3WordPress 3.WordPress

    4.Docker

    5.

  • 1. Docker

  • Docker

    Mac

    Ubuntu

    Apache Unicorn

    CentOS

    MySQL

  • Apache Unicorn

    LinuxOS

    MySQL

    Linux OS

    Apache Unicorn

    Linux OS

    MySQL

    VMWare

    Docker

    Docker engine

    OS

  • Apache Unicorn

    LinuxOS

    MySQL

    Linux OS

    Apache Unicorn

    Linux OS

    MySQL

    VMWare

    Docker

    Docker engine

    OS OS

    OS Docker engine

    Dockerle

  • Docker

    Dockerle

    Docker Dockerle

    Docker Docker

  • Docker

    Apache Unicorn

    Docker (Docker

    Apache Unicorn

    Dockerle

    Dockerle Docker

    Ubuntu

    CentOS

    A

    B

    A

    Docker

    Dockerle Docker

    Docker

    Docker Hub

    pull / push

  • Docker

    Dockerle

    ! 2

    Dockerle1OK Docker Hub Registry

  • 2. 3WordPress

  • WordPress

  • Docker

    Docker Dockerle

  • Docker

    boot2docker Docker

    LinuxVM

    Git

  • boot2docker

    exportboot2docker upOK

    $ boot2docker init

    $ boot2docker up

    $ export DOCKER_HOST=tcp://192.168.59.103:2376

    $ export DOCKER_CERT_PATH=~/.boot2docker/certs/boot2docker-vm

    $ export DOCKER_TLS_VERIFY=1

    $ docker -v

    Docker version 1.4.1, build 5bc2ff8

  • WordPress

    $ docker pull tutum/wordpress

  • !!!! https://prevs.io/ DockerleGit

    http://master.yourapp.username.prevs.io/ http://ea32b41.yourapp.username.prevs.io/

  • WordPress3

    boot2docker ipIP

    WordPress

    $ docker run -d -p 80:80 --name=wordpress tutum/wordpress

    e65f0c76a61ad3a99bd50f856f638debb4fd9761efc0beea2847b47ef101a576

    $ boot2docker ip

    192.168.59.103

  • run -d

    -p: --name=

    $ docker run -d -p 80:80 --name=wordpress tutum/wordpress

  • Docker3!!

    docker pull tutum/wordpress

    docker run -d -p 80:80 --name=wordpress tutum/wordpress

    http://192.168.59.103/

  • Docker3!!

    docker pull tutum/wordpress

    docker run -d -p 80:80 --name=wordpress tutum/wordpress

    http://192.168.59.103/

    !!

  • Dockerle

    DockerDockerle

    Dockerle

    tutum/wordpressDockerle https://registry.hub.docker.com/u/tutum/wordpress/dockerle/

  • tutum/wordpress Dockerle

    Wordpress

    DB

    Apache/MySQL

  • ApacheMySQL

    FROMDockerDocker FROMDockerle

    tutum/lampApacheMySQL https://registry.hub.docker.com/u/tutum/lamp/dockerle/

    tutum/lamp tutum/wordpress tutum/wordpress

  • Dockerle

    https://registry.hub.docker.com/u/tutum/wordpress/dockerle/

    ADD

    Docker RUN

    EXPOSE

    Docker CMD

    Docker

  • 3. WordPress

  • !!

    Docker!!

  • ADD

    WordPresswp-cong.phpMySQLwordpress

    DockerleADD

    DockerleADD

    Docker

  • tutum/wordpress

    https://github.com/mookjp/tutum-docker-wordpress GitDownload ZIP

  • -v: /data-share

    $ cd tutum-docker-wordpress$ docker rm -f wordpress$ docker run -d -p 80:80 -v $(pwd):/data-share --name=wordpress tutum/wordpress$ docker exec -it wordpress /bin/bashroot@f060d2205670:/# ls

  • $ mysqldump -u root wordpress > /data-share/mysql.dump.sql

    $ exit

    http://192.168.59.103/

    mysqldump

    mysql.dump.sql

  • create_db.sh

    while [[ RET -ne 0 ]]; do

    sleep 5

    mysql -uroot -e "CREATE DATABASE $1"

    mysql -uroot $1 < /mysql.dump.sql

    RET=$?

    done

    tutum/wordpresscreate_db.shDB

    DB

  • Dockerle

    ADD create_mysql_admin_user.sh /create_mysql_admin_user.sh

    ADD mysql.dump.sql /mysql.dump.sql

    ADD create_db.sh /create_db.sh

    tutum/wordpresscreate_db.shDB

    DB

  • tutum/wordpress

    $ docker build -t my-wordpress .Sending build context to Docker daemon 715.3 kBSending build context to Docker daemonStep 0 : FROM tutum/lamp:latest ---> b84edafb1623Step 1 : MAINTAINER Fernando Mayo , Feng Honglin ---> Using cache ---> 3f8b39c08696

  • http://192.168.59.103/

    WordPress

    $ docker rm -f wordpress # $ docker run -d -p 80:80 --name=my-wordpress my-wordpresse43f1c76a61ad3a99bd50f856f638debb4fd9761efc0beea2847b47ef101a576

  • 4. Docker

  • Dockerle

    wp-contentwp-cong.phpMySQLDockerleGit

    docker run

  • Docker

    1. -v 2. WordPressmysqldump

    3. http://192.168.59.103/ wp-content/themes/xxxstyle.css

    4. 1. docker

    builddocker runOK

  • my-wordpresswp-content

    $ docker run -it -v $(pwd):/data-share my-wordpress /bin/bash

    root@ff489d751af9:/# cp -r /app/wp-content/ /data-share/

  • Dockerle

    wp-contentADDDockerle

    build

    # Download latest version of Wordpress into /app

    RUN rm -fr /app && git clone --depth=1 https://github.com/WordPress/WordPress.git /app

    ADD wp-content /app/wp-content

    ---

    $ docker build -t my-wordpress

  • wp-content/ wp-cong.php mysql.dump.sql

    $ docker rm -f my-wordpress # run$ docker run -d -p 80:80 --name=my-wordpress \

    -v $(pwd)/wp-content:/app/wp-content \

    -v $(pwd)/wp-config.php:/app/wp-config.php

    -v $(pwd)/mysql.dump.sql:/mysql.dump.sql my-wordpress

  • Twenty Eleven

  • Twenty Eleven CSS http://192.168.59.103/

    $ vim wp-content/themes/twentyeleven/style.css

    #site-title a

  • DB

    DB

    $ docker exec my-wordpress sh -c "mysqldump -u root wordpress > /mysql.dump.sql"

  • VCS

    $ git statusOn branch masterYour branch is ahead of 'origin/master' by 3 commits. (use "git push" to publish your local commits)Changes not staged for commit: (use "git add ..." to update what will be committed) (use "git checkout -- ..." to discard changes in working directory) modified: mysql.dump.sql modified: wp-content/themes/twentyeleven/style.css

  • 5.

  • Dockerle ADD/RUN/EXPOSE/CMD

    pull/build/run/exec

    Github

    https://github.com/mookjp/tutum-docker-wordpress Download ZIPZIP

  • Docker!!

  • http://recruit-tech.co.jp/recruitment/mid-career.html

    Docker

  • Docker https://docs.docker.com/ Docker