LoginSignup
1
4

More than 3 years have passed since last update.

nginx をフォアグラウンドで動かす (Dockerfile用)

Last updated at Posted at 2020-07-28

スマートな方法

「シンプルですが、なかなかよい方法では。(自賛)」、と書いた方法が、かなりダサいことが判明したので修正します…

起動用のシェルスクリプトを書いて、-g オプションで "daemon off" ディレクティブを指定します。

$PREFIX/sbin/nginx-runner
#!/bin/sh

if [ -f $PREFIX/logs/nginx.pid ]; then
    rm -f $PREFIX/logs/nginx.pid
fi

$PREFIX/sbin/nginx -g "daemon off;"

これだと別に設定ファイルを用意しなくていいのでスマートですね……

最後のセミコロンをお忘れ無く!

古くてダサい方法…

小さな設定ファイルを作ります。

$PREFIX/conf/nginx-foreground.conf
daemon off;
include nginx.conf;

起動用のシェルスクリプトを書きます。

$PREFIX/sbin/nginx-runner
#!/bin/sh

if [ -f $PREFIX/logs/nginx.pid ]; then
    $PREFIX/sbin/nginx -s quit
    rm -f $PREFIX/logs/nginx.pid
fi

$PREFIX/sbin/nginx -c $PREFIX/conf/nginx-foreground.conf

DockerfileCMD でこれを使うと nginx-foreground.conf を読むので、フォアグラウンドで動きます。

一方、手動で動かすときには、何も指定しなければ nginx.conf を読むので、バックグラウンドで動作します。

シンプルですが、なかなかよい方法では。(自賛)

1
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
4