バイナリとともにサーバー上で利用可能なstatic
およびディレクトリに依存するプログラムがあります。config
NixOps のデフォルトのビルド フェーズには、これらのファイルは含まれていません。バイナリをコンパイルしてから、バイナリをサーバーにコピーするだけであることがわかります。
static
およびconfig
ディレクトリがサーバーで使用できるようにビルド フェーズを変更するにはどうすればよいですか? 追加してみました:
preInstall = ''
echo "copying static and config files"
cp -a ../static $out/static
cp -a ../config $out/config
'';
しかし、それは実際にファイルをコピーしていないようで、echo
コマンドが実行されたことはありません。NixOpsで使用される構成ファイルの要点を次に示します。サーバー上のエラーは次のとおりです。
[root@pprjam:~]# systemctl status pprjam
● pprjam.service - pprjam webapp
Loaded: loaded (/nix/store/z2s52f39p3dx8q9b06rkaqqw5mhdvnmq-unit-pprjam.service/pprjam.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Sat 2018-02-17 01:29:57 UTC; 1min 27s ago
Process: 6917 ExecStart=/nix/store/khilhwldcbm0xm3a3bzhy6f0kwdk8w1p-pprjam-0.0.0/bin/pprjam (code=exited, status=1/FAILURE)
Main PID: 6917 (code=exited, status=1/FAILURE)
Feb 17 01:29:51 pprjam systemd[1]: Started pprjam webapp.
Feb 17 01:29:56 pprjam pprjam[6917]: pprjam: static: getDirectoryContents:openDirStream: does not exist (No such file or directory)
Feb 17 01:29:57 pprjam systemd[1]: pprjam.service: Main process exited, code=exited, status=1/FAILURE
Feb 17 01:29:57 pprjam systemd[1]: pprjam.service: Unit entered failed state.
Feb 17 01:29:57 pprjam systemd[1]: pprjam.service: Failed with result 'exit-code'.