目次
やりたいこと
Doxygen環境をDockerで構築したいです。
環境
| ソフト | バージョン |
| Windows11 | 23H2 |
| WSL2(Ubuntu) | 20.04 LTS |
| docker desktop | 4.31.1 (153621) |
| nakatt/doxygen | 1.8.20 |
手順
作業は全てWSL2上で実施しました。
# Dockerイメージをプルします
docker pull nakatt/doxygen
# Doxygenドキュメントを生成したいソースコードがあるフォルダに移動します
cd path/to/src
# Doxygenの設定ファイル Doxyfile を生成します。
docker run -it --rm -v $PWD:/data nakatt/doxygen -g Doxyfile
# Doxyfileを編集します。(私の例を後述します)
sudo vi Doxyfile
# Doxygenドキュメントを生成します。
docker run -it --rm -v $PWD:/data nakatt/doxygen
この手順で実行した配下にhtmlフォルダが生成されています。index.htmlを開いて中身を確認して問題なければOKです。
期待したコードがドキュメント化されていない、画像が生成されていない等あればDoxyfileの設定を見直してください。
Doxyfileの変更例
$ diff Doxyfile Doxyfile.mod
485c485
< EXTRACT_ALL = NO
---
> EXTRACT_ALL = YES
926c926
< RECURSIVE = NO
---
> RECURSIVE = YES
1567c1567
< HTML_FORMULA_FORMAT = png
---
> HTML_FORMULA_FORMAT = svg
2301c2301
< HAVE_DOT = NO
---
> HAVE_DOT = YES
2418c2418
< CALL_GRAPH = NO
---
> CALL_GRAPH = YES
2430c2430
< CALLER_GRAPH = NO
---
> CALLER_GRAPH = YES
2461c2461
< DOT_IMAGE_FORMAT = png
---
> DOT_IMAGE_FORMAT = svg
以上です。
調べた事のメモ
PNG生成エラー。
# dotコマンドでPNGを作成する際にエラーが発生しました。
/data # dot -Tpng ./sample.dot -o ./sample.png
Format: "png" not recognized. Use one of: canon cmap cmapx cmapx_np dot dot_json eps fig gv imap imap_np ismap json json0 mp pic plain plain-ext pov ps ps2 svg svgz tk vml vmlz xdot xdot1.2 xdot1.4 xdot_json
# 問題を確認してみるとライブラリがロードできないとエラーになっていますがファイル自体は存在していました。
# (...シンボリックリンクだとダメ?)
/data # dot -c
Warning: Could not load "/usr/lib/graphviz/libgvplugin_pango.so.6" - file not found
Warning: Could not load "/usr/lib/graphviz/libgvplugin_pango.so.6" - file not found
少し調べてみましたが解消方法がわからなかったので、png ではなく svg形式で出力するようにして問題を解消させました。
error: Doxyfile not found and no input file specified!
GitBashで実行しようとしたところ掲題のエラーが出てドキュメント生成が出来ませんでした。 何か設定の問題かとは思いますがWSLでは生成できるのでWSLで実行するようにしました。

