docker コマンドは makefile でファイルを見つけることができませんが、CLI で直接見つけることができます。

docker コマンドは makefile でファイルを見つけることができませんが、CLI で直接見つけることができます。

端末にファイルがあるディレクトリにある場合は、test.tex次のdockerコマンドを実行できます。

$ docker run -i --rm --name latex -v "WD":/usr/src/app -w /usr/src/app registry.gitlab.com/islandoftex/images/texlive:latest-with-cache pdflatex test

makefileしかし、次の内容でファイルを生成した場合:

run-docker:
    docker run -i --rm --name latex -v "$PWD":/usr/src/app -w /usr/src/app registry.gitlab.com/islandoftex/images/texlive:latest-with-cache pdflatex test

端末で次のコマンドを実行します。

$ make run-docker

その結果、次のエラーが発生します。

docker run -i --rm --name latex -v "WD":/usr/src/app -w /usr/src/app registry.gitlab.com/islandoftex/images/texlive:latest-with-cache pdflatex test
This is pdfTeX, Version 3.141592653-2.6-1.40.23 (TeX Live 2021) (preloaded format=pdflatex)
 restricted \write18 enabled.
entering extended mode
! I can't find file `test'.
<*> test
        
(Press Enter to retry, or Control-D to exit)
Please type another input file name: 
! Emergency stop.
<*> test
        
!  ==> Fatal error occurred, no output PDF file produced!
Transcript written on texput.log.
make: *** [makefile:15 : run-docker] Erreur 1

この問題を解決する方法は何ですか(私の考えはこの問題とは関係がないようですLaTeX)。

答え1

変数参照が正しくありません。$(CURDIR)Makefileで使用する必要があります。

run-docker:
    docker run -i --rm --name latex -v "$(CURDIR)":/usr/src/app -w /usr/src/app registry.gitlab.com/islandoftex/images/texlive:latest-with-cache pdflatex test

関連情報