新型Macを買いました。 Apple M1 CPUの型を購入したのですが、まだ安定板のソフトがでていないものがちらちら。
アプリが対応してるか調べるの大事ですね。
パフォーマンスチューニングの知見に乏しいので情報を集めてた。 きっかけはこの辺。
で、主にCDNについて調べてみることにした。
CDN、使ったことがあるものの、仕組みを理解してなかったんで。。
そして見つけた分かりやすい記事!
連載分全部読んだら、副産物として、DNS、キャッシュの対象とすべき範囲、キャッシュの種類などなど、色々分かってためになった。
DNSの理解というところで、この記事も役にたった(権威DNSとキャッシュDNSがどういう関係なのか調べてたとこで発見した)
DNS変更した時に、このDNSチェッカーが便利そうだったのでメモがてらURLはっとく。
明日は、Lazy loadとかprefetchの手法について調べよう。
時間があったら、MemcachedとRedisについても。
Dockerの勉強メモ。 WordPressの開発があるんで、Dockerでイメージ作れるようになりたいなーってことで。。
www.youtube.com 概念の説明、入門で抑えておくべきところが端的にまとまっててよかった。
www.youtube.com こちらもポイントが端的にまとまっててよかった。
クィックスタート: Compose と WordPress — Docker-docs-ja 19.03 ドキュメント
Docker公式に解説があるのですよね。(DockerHubにも公式のイメージがあるし)
ですが、docker-composeも上記サイトからわざわざコピペしなくても、ソースを用意してくれてる素敵な方がいらっしゃいました。 github.com
んじゃ、これで開発するかー。となったのですが
マウントしたボリュームのディレクトリ、Linuxだとroot権限で作られるので、ファイルの読み書きするたびにsudoしたりするのは面倒。 同様の問題にあたっている方が多かったので、Dockerの勉強を兼ねて調べてみた。
ひとまず、先程のwordpress-docker-composeリポジトリをフォークして、この辺を記事を参考にさせていただきつつ、 qiita.com qiita.com blog.amedama.jp tech-blog.rakus.co.jp
実装進めてみたものの動かない。
# docker-compose.yml # 必要な構成だけ ※注意:動かないよ version: "3" services: wp: image: wordpress-custom build: context: . args: image: wordpress:latest environment: USER_ID: ${USER_ID} GROUP_ID: ${GROUP_ID} db: image: mysql-custom build: context: . args: image: mysql:latest environment: USER_ID: ${USER_ID} GROUP_ID: ${GROUP_ID}
# Dockerfile # ※注意:動かないよ ARG image FROM ${image} RUN apt-get update \ && apt-get -y install gosu COPY entrypoint.sh /usr/local/bin/entrypoint.sh RUN chmod +x /usr/local/bin/entrypoint.sh ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
# entrypoint.sh # ※注意:動かないよ USER_NAME=user USER_ID=$USER_ID GROUP_ID=$GROUP_ID # グループを作成する if [ x"$GROUP_ID" != x"0" ]; then groupadd -g $GROUP_ID $USER_NAME echo "Add group: $GROUP_ID" fi # ユーザを作成する if [ x"$USER_ID" != x"0" ]; then useradd -d /home/$USER_NAME -m -s /bin/bash -u $USER_ID -g $GROUP_ID $USER_NAME export HOME=/home/$USER_NAME echo "Add user: $USER_NAME" fi # TODO こいつが動かない。ユーザー変更と認識してるが違うのかな。。 # ログ見ると、 Usage: ./gosu user-spec command [args]... って出てる /usr/sbin/gosu user # 使用イメージのdocker-entrypoint.sh の呼び出しも、これってどうなのかなって感じ。。 # wordpressにいたっては、パラメータ(CMD)が必要そうだし。。 # https://github.com/docker-library/wordpress/blob/master/Dockerfile.template#L260-L265 exec /bin/bash /usr/local/bin/docker-entrypoint.sh $@
USER_ID=$(id -u) GROUP_ID=$(id -g) sudo -E docker-compose up -d
Best practices for writing Dockerfiles | Docker Documentation
この辺も参考にしてみたけども、gosuのコマンドの使い方まちがってるのかなぁうーん。。
結局解決にいたらなかったが、コマンドでホストマシン側のマウントディレクトリ(てか直下全部)をchownで、ログインユーザーのアカウントの所有に変更しちゃうという無理やりな方法をとりましたとさ。
できあがったブツ。 github.com
今月中に、このリポジトリにGulp / Webpack / HMRとか、よく使う系の環境を追加していきたいなぁ〜(自分がよく使うやつw)
# mysqlログイン $ mysql -u ${user_name} -p # dump $ mysqldump -u ${user_name} -p ${db_name} > /path/to/${output_file_name}
# データベース一覧 SHOW DATABASES; # ユーザー一覧 SELECT Host, User FROM mysql.user; # 権限表示 SHOW GRANTS for '${user_name}'@'${host}'; # DB文字コード確認(DB作成時の情報) show create database ${db_name}; # テーブル文字コード確認 show variables like "chara%"; # データベース作成 CREATE DATABASE ${db_name} CHARACTER SET utf8; CREATE DATABASE ${db_name} CHARACTER SET utf8 COLLATE utf8_general_ci; # データベース削除 DROP DATABASE ${db_name}; # データベース選択 USE ${db_name} # ユーザー作成(データベース固有) # GRANT [権限] ON [適用対象のデータベース].[適用対象のテーブル] TO 'ユーザ名'@'ホスト名' IDENTIFIED BY 'パスワード'; GRANT ALL PRIVILEGES ON ${db_name}.* TO "${user_name}"@"localhost" IDENTIFIED BY "${passwrod}"; # ユーザー一覧 SELECT user, host FROM mysql.user; SHOW COLUMNS FROM ${db_name}.user; # DBリストア(ファイルから) mysql -h ${host_name} -u ${user_name} -p -D ${db_na,e} < /path/to/dump_data_file # 権限反映 FLUSH PRIVILEGES;
参考 https://qiita.com/pinohara/items/481c95dc4c8c2568bf8d https://proengineer.internous.co.jp/content/columnfeature/6638
# 同ディレクトリ以下(再帰)の拡張子htmlファイルで、ファイル内にhogeがあるファイルを検索 $ find ./ -name "*.html" | xargs grep "hoge" # 同ディレクトリ以下(再帰)のファイル(notディレクトリ)で、ファイル内にhogeがあるファイルのフルパスを表示 $ find ./ -type f | xargs grep -ril "hoge" # 同ディレクトリ以下(再帰)の拡張子cssファイルで、各ファイルにimportantが何個出現するかresult.txtに出力する $ find ./ -name "*.css" | xargs grep -c "important" > result.txt # node_modulesディレクトリをfindの対象外にする $ find ./ -type f -not -path "./node_modules/*" | xargs grep "axios"
# イメージからの一括起動(-d:バックグランド) $ docker-compose up -d # コンテナの一括起動 $ docker-compose start # コンテナの一括停止 $ docker-compose stop # コンテナの一括削除 $ docker-compose rm # コンテナとイメージの一括削除 $ docker-compose down --rmi all -v # 全て削除 $ docker-compose down --rmi all --volumes --remove-orphans # ビルドし直し $ docker-compose up -d --build # コンテナに入る $ docker exec -it [container] bash
phpMyAdmin/config.inc.php
$cfg['Servers'][$i]['auth_type'] = 'cookie'; //config, http, cookie $cfg['Servers'][$i]['user'] = ''; $cfg['Servers'][$i]['password'] = '';
$cfg['Servers'][$i]['auth_type'] = 'config'; $cfg['Servers'][$i]['user'] = 'root'; $cfg['Servers'][$i]['password'] = 'rootPass';