0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Docker で Nginx を 利用する

Posted at

はじめに

DockerのNginxをrootlessで構築するときのメモ残しです。
Warnがログに出ていたところを見逃していましたので、その修正対応込みでの記事となります。
ただ、エラーログにnoticeが出ますので、もう少し良い方法があるかもしれません。

確認環境

  • WSL2(Ubuntu 22.04.3 LTS)
  • Docker 26.0.0
  • Docker Compose v2.26.1
  • Nginx 1.27.0

フォルダ構成

[projectfolder]
 ├─ compose.yml
 ├─ Dockerfile
 ├─ conf.d 
 │    └─ default.conf (コンテナからコピー)
 ├─ log
 │    └─ (アクセスログを格納)
 └─ html
      └─ index.html (表示確認サンプル)

設定ファイルをコンテナからコピーする

# プロジェクトフォルダに移動
cd {projectfolder}
# コンテナを仮立ち上げ
docker run --name nginx-temp -itd nginx:1.27.0
# 設定ファイルをコピー
docker cp nginx-temp:/etc/nginx/conf.d conf.d
# 仮コンテナを削除
docker rm -f nginx-temp

コード

compose.yml
services:
  web:
    build: 
      context: .
    ports:
      # ポート設定
      - "80:80"
    environment:
      # タイムゾーン
      TZ: "Asia/Tokyo"
    volumes:
      # ドキュメントルート
      - ./html:/usr/share/nginx/html
      # 設定ファイル
      - ./conf.d:/etc/nginx/conf.d
      # アクセスログ
      - ./log:/var/log/nginx
Dockerfile
# Nginx を指定
FROM nginx:1.27

# GID,UID変更(必要があれば)
# RUN groupmod -g 1000 nginx
# RUN usermod -u 1000 nginx

                        # キャッシュフォルダの所有者を変更
RUN chown -R nginx:nginx /var/cache/nginx/ \
                        # pidのデフォルト設定場所の所有者を変更
                         /var/run/ \
                        # ログフォルダの所有者を変更
                         /var/log/nginx/

# nginx.conf の先頭行の user nginx; をコメントアウト
RUN sed -i 's/^\(.*user  nginx;.*\)$/#\1/' /etc/nginx/nginx.conf
conf.d/default.conf ※差分のみ
-    #access_log  /var/log/nginx/host.access.log  main;
+    access_log  /var/log/nginx/access.log  main;
html/index.html(確認用ですのでお好きに)
<html>
    <h1>IT'S WORKS!!</h1>
</html>

立ち上げコマンド

shell実行
docker compose up -d

※立ち上げ後、ブラウザから localhost に接続して、index.html の内容が表示されていたら、OKです

注意点&解説

  • GID,UID については、必要があれば変更してください
  • nginx.conf のuser nginx; は rootユーザーではないと、できない設定みたいなので、root以外のユーザーで残して実行するとWarningが出てしまいます
  • default.conf と記載していますが、末尾が.confであれば読み込んでくれます(複数の場合はルールがあったかと思いますので、調べてください…)

最後に

Warningの内容をAI(Gemini Pro 1.5) に聞くと、原因と解決策をすぐに出してくれましたので、すごく楽でした。とはいえ最近、検索して解決する能力がどんどん落ちてきている気がします😢

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?