Help us understand the problem. What is going on with this article?

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

スマートな方法

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

起動用のシェルスクリプトを書いて、-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 を読むので、バックグラウンドで動作します。

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

keys
双子のロシアンブルーと同居するインフラエンジニア。楽するための苦労はいとわないタイプ。最適化とか自動化が大好き。IPv6, AWS, Docker, Serverless, Python, セキュリティといった単語に反応するようです。すみっコぐらしの推しはとかげ。みにっコだとざっそう。
https://devel.keys.jp
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away