Closed21

Docker勉強

HishoHisho

レベル感

  • docker-composeがあれば起動できる
  • 自分でDockerを構築することはできない
  • Dockerファイルが動かなくなった時自分で対処できない
  • 実務ではDockerを使ったことは無い
  • Dockerの概要だけなんとなくわかる
  • インフラの知識は0
  • バックエンドの知識も0
  • SQLの知識も0
HishoHisho

動画を見終わったので実際に手を動かす

HishoHisho

用意するファイルは3つです。

  • docker-compose.yml
  • Dockerfile
  • wp-install.sh

3つファイルが必要っぽいので作成する

$ touch docker-compose.yml Dockerfile wp-install.sh
HishoHisho

docker-compose.yml ファイルを作ります。参考までにDocker Composeについて知りたい場合は【初心者向け】DockerでWordPressを動かす方法を解説に書いてあります。

らしいので
https://it-web-life.com/docker-wordpress/
この記事を流し見する

HishoHisho

記事を読んだのでまずはdocker-compose.ymlの内容を丸コピする

docker-compose.yml
version: "3.1"

services:
  wordpress:
    build: ./
    container_name: wp1-wordpress
    ports:
      - "8000:80"
    volumes:
      - ./html:/var/www/html
      - ./wp-install.sh:/tmp/wp-install.sh
    environment:
      WORDPRESS_DB_NAME: wordpress_db
      WORDPRESS_DB_PASSWORD: mysql_password
    depends_on:
      - mysql
    restart: always

  mysql:
    image: mariadb
    container_name: wp1-mariadb
    ports:
      - "3306:3306" #MacのMySQLとポートがバッティングする場合は変える 例) - "33060:3306"
    volumes:
      - db_mysql:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: mysql_password
    restart: always

  phpmyadmin:
    image: phpmyadmin/phpmyadmin
    container_name: wp1-phpmyadmin
    ports:
      - 8080:80
    volumes:
      - ./phpmyadmin/sessions:/sessions
    environment:
      - PMA_ARBITRARY=1
      - PMA_HOST=mysql
      - PMA_USER=root
      - PMA_PASSWORD=mysql_password
    depends_on:
      - mysql

volumes:
  db_mysql:
HishoHisho

Dockerfileの内容を丸コピする

Dockerfile
FROM wordpress:latest

# wp-cliのインストール ※注意:ここでwp-cliインストールしないとWordPressが正常にインストールできない
RUN curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar \
  && chmod +x wp-cli.phar \
  && mv wp-cli.phar /usr/local/bin/wp \
  && wp --info

DockerfileのシンタックスハイライトはDockerfile: Dockerfileで良かったのだろうか🤔

HishoHisho

wp-install.shの内容を丸コピする

wp-install.sh
#!/bin/bash

# WordPressセットアップ admin_user,admin_passwordは管理画面のログインID,PW
wp core install \
--url='http://localhost:8000' \
--title='サイトのタイトル' \
--admin_user='wordpress' \
--admin_password='wordpress' \
--admin_email='info@test.com' \
--allow-root

# 日本語化
wp language core install ja --activate --allow-root

# タイムゾーンと日時表記
wp option update timezone_string 'Asia/Tokyo' --allow-root
wp option update date_format 'Y-m-d' --allow-root
wp option update time_format 'H:i' --allow-root

# キャッチフレーズの設定 (空にする)
wp option update blogdescription '' --allow-root

# プラグインの削除 (不要な初期プラグインを削除)
wp plugin delete hello.php --allow-root
wp plugin delete akismet --allow-root

# プラグインのインストール (必要に応じてコメントアウトを外す)
wp plugin install wp-multibyte-patch --activate --allow-root
# wp plugin install backwpup --activate --allow-root
# wp plugin install siteguard --activate --allow-root
# wp plugin install contact-form-7 --activate --allow-root
# wp plugin install wp-mail-smtp --activate --allow-root
# wp plugin install all-in-one-seo-pack --activate --allow-root
# wp plugin install broken-link-checker --activate --allow-root
# wp plugin install addquicktag --activate --allow-root

# テーマの削除
wp theme delete twentysixteen --allow-root
wp theme delete twentyseventeen --allow-root
wp theme delete twentynineteen --allow-root
# wp theme delete twentytwenty --allow-root

# パーマリンク更新
wp option update permalink_structure /%postname%/ --allow-root
HishoHisho

docker-compose up -dを実行する

Creating network "docker-wordpress-practice_default" with the default driver
Creating volume "docker-wordpress-practice_db_mysql" with default driver
Pulling mysql (mariadb:)...
latest: Pulling from library/mariadb
da7391352a9b: Pull complete
14428a6d4bcd: Pull complete
2c2d948710f2: Pull complete
22776aa82430: Pull complete
90e64230d63d: Pull complete
f30861f14a10: Pull complete
e8e9e6a3da24: Pull complete
420a23f08c41: Pull complete
bd73f23de482: Pull complete
a8690a3260b7: Pull complete
4202ba90333a: Pull complete
a33f860b4aa6: Pull complete
Digest: sha256:cdc553f0515a8d41264f0855120874e86761f7c69407b5cfbe49283dc195bea8
Status: Downloaded newer image for mariadb:latest
Building wordpress
Step 1/2 : FROM wordpress:latest
latest: Pulling from library/wordpress
6ec7b7d162b2: Pull complete
db606474d60c: Pull complete
afb30f0cd8e0: Pull complete
3bb2e8051594: Pull complete
4c761b44e2cc: Pull complete
c2199db96575: Pull complete
1b9a9381eea8: Pull complete
50450ffc67ee: Pull complete
4d1e5a768e83: Pull complete
5e8be0d1df16: Pull complete
7a6395859d40: Pull complete
7306499d3dce: Pull complete
fa6f0ba15ac6: Pull complete
308a9ead128f: Pull complete
2db781a8732e: Pull complete
63d3161e9e46: Pull complete
a08dd591ed8a: Pull complete
931a26282f2a: Pull complete
f5c6b405e809: Pull complete
caf2bb847f73: Pull complete
Digest: sha256:dadd8e9c2ef6dc2fe146cbc5f2edc0ed8ae1026ae252b52f25791be4d7d16600
Status: Downloaded newer image for wordpress:latest
 ---> bc5f6567b763
Step 2/2 : RUN curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar   && chmod +x wp-cli.phar   && mv wp-cli.phar /usr/local/bin/wp   && wp --info
 ---> Running in 9d31505bc1a9
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 5437k  100 5437k    0     0  4824k      0  0:00:01  0:00:01 --:--:-- 4824k
OS:	Linux 4.19.121-linuxkit #1 SMP Tue Dec 1 17:50:32 UTC 2020 x86_64
Shell:
PHP binary:	/usr/local/bin/php
PHP version:	7.4.13
php.ini used:
WP-CLI root dir:	phar://wp-cli.phar/vendor/wp-cli/wp-cli
WP-CLI vendor dir:	phar://wp-cli.phar/vendor
WP_CLI phar path:	/var/www/html
WP-CLI packages dir:
WP-CLI global config:
WP-CLI project config:
WP-CLI version:	2.4.0
Removing intermediate container 9d31505bc1a9
 ---> 2dca51b90916

Successfully built 2dca51b90916
Successfully tagged docker-wordpress-practice_wordpress:latest
WARNING: Image for service wordpress was built because it did not already exist. To rebuild this image you must use `docker-compose build` or `docker-compose up --build`.
Pulling phpmyadmin (phpmyadmin/phpmyadmin:)...
latest: Pulling from phpmyadmin/phpmyadmin
bb79b6b2107f: Pull complete
80f7a64e4b25: Pull complete
da391f3e81f0: Pull complete
8199ae3052e1: Pull complete
284fd0f314b2: Pull complete
f38db365cd8a: Pull complete
1416a501db13: Pull complete
1a45b5b978cd: Pull complete
c662caa8d2ec: Pull complete
2db216a7247d: Pull complete
d23772456121: Pull complete
3c068acf6c51: Pull complete
2980002e0c52: Pull complete
fa017dfc3023: Pull complete
81d3fce49de7: Pull complete
b6e4d8bc5eb9: Pull complete
f905c868a579: Pull complete
23e62ab5144c: Pull complete
Digest: sha256:44e37f6738cb7f5c4203def3b41ee45281286f6b2026826f309d1ab58efe12cb
Status: Downloaded newer image for phpmyadmin/phpmyadmin:latest
Creating wp1-mariadb ... done
Creating wp1-wordpress  ... done
Creating wp1-phpmyadmin ... done

なんか赤いの出てたけどとりあえず続きを実行する

HishoHisho
$ docker exec -it wp1-wordpress /bin/bash 
docker exec -it wp1-wordpress /bin/bash
root@c9dd3ea282fe:/var/www/html#

入れたっぽい

HishoHisho

http://localhost:8000/に移動すると立ち上がった!

HishoHisho

忘れないようにcommandをREADME.mdに書いておく

docker

docker initialize

$ docker-compose up -d
$ docker exec -it wp1-wordpress /bin/bash
$ chmod +x /tmp/wp-install.sh
$ /tmp/wp-install.sh

docker start

$ docker-compose up -d

docker end

$ docker-compose down
HishoHisho

結局dockerの事はあまり理解できなかったので、自分で最初から苦しんで構築することにする。
env切り出しとDB dumpまでがとりあえずの目標

このスクラップは2020/12/21にクローズされました