🌊
nginxをrootユーザー以外で起動する場合の留意点
担当プロダクトの要件としてnginxをrootユーザー以外で起動するというものがありました。
rootユーザーと同じように実行しようしたらハマったのでメモとして記録しておきます。
やろうとしたこと
以下のようにsampleuserを作成し、nginxを起動しようとしました。
...略
RUN adduser --disabled-password --gecos "" sampleuser
EXPOSE 80
USER sampleuser
ENTRYPOINT ["nginx"]
しかし、bind() to 0.0.0.0:80 failed (13: Permission denied)
というようなエラーが発生しました。
対応方法
以下の参考にした記事によると、0〜1023ポートはrootユーザーでないと使えないとのことです。
従って80ポートは使えないので別のポートで起動する必要があります。
今回は8080ポートで起動しました。
...略
RUN adduser --disabled-password --gecos "" sampleuser
EXPOSE 80
USER sampleuser
ENTRYPOINT ["nginx"]
server {
listen 8080;
...略
}
Discussion