akiya64 / wocker-dockerfile

This is the Dockerfile of the Docker image wocker/wocker for Wocker.
https://wckr.github.io/
0 stars 0 forks source link

Show Favicon #1

Closed akiya64 closed 7 years ago

akiya64 commented 7 years ago

Faviconの表示 (サイトアイコンの表示)

WordPressダッシュボードからの表示設定方法

WordPress本体では、外観->カスタマイズ->サイト基本情報 にて画像をアップロードするか、アップロード済み画像から指定する。 Creating a Favicon WordPress Codex

WPコアの挙動

ダッシュボードからサイトアイコンを設定すると、指定された画像の投稿IDをWP-Optionsテーブルに格納する。

WP-Options Table

option_id option_name option_value autoload
77870 site_icon 14038 yes

Autumnskyでの実際の設定値 https://developer.wordpress.org/reference/functions/get_site_icon_url/

Wockerへの適応

Dockerファイルのビルド時にWordPressに上記の設定をする。 WP-CLIを使って、メディアをアップロード、Optionsの設定をアップデート。

http://wp-cli.org/commands/option/ http://wp-cli.org/commands/media/

初期の投稿はHello Worldの一件のみだと思われるが、画像の投稿ID取得をどうするか。

WP-CLIで投稿IDの取得はできる。

wp post list | tail -n1 | cut -c 1
akiya64 commented 7 years ago

ローカルでビルドしたイメージをWockerで使う場合は、イメージ名を指定してRun。

Usage: wocker run [--name=""] [IMAGE[:TAG]]

https://wckr.github.io/commands/

akiya64 commented 7 years ago

Windows 10 HomeではHyper-V環境がないため、Docker for Windowsがインストールできない。 -> docker build もダメ

Docker ToolBoxはインストールできるが古いため非推奨。 一旦、Docker ToolBoxでビルドした。

akiya64 commented 7 years ago

Wockerにイメージを登録する方法が分からないため、data dir経由でdockerfileを入れてWocker内で docker build してイメージを作成。

WP-CLIで画像をアップロードすると、投稿IDは3。 --porcelain オプションでアップロードしたファイルの投稿IDが返ってくる。

$ wp media import IMAGE --porcelain 
 3

これをパイプしてXargsにてwp set optionを実行。

docker でイメージ名を指定してのビルドができない。 シンボリックリンクなど、仮想化環境のファイル周り?Windowsローカルでのビルドでも同じ問題が起きた。

docker -tag akiya64/favicon:latest IMAGE_ID

ビルド後にリネームして対応。

akiya64 commented 7 years ago

7643c0334d8fffa12aa818c56ac655300bb4eaa0 にて、プルリクを送信。