1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

[01] 書籍「nginx 実践ガイド」の学習環境を docker-compose を用いて作成する

Last updated at Posted at 2022-02-08

概要

「nginx 実践ガイド」(渡辺高志 著) (インプレス) の学習のための docker 環境構築メモである.

御著書(以降「nginx 実践ガイド」)は、物理ホスト上に nginx やその他サービスを導入する前提になっている. そこで、Docker 上に「nginx 実践ガイド」の検証環境を構築するための手順を記す.

つまり、本記事は次の方針で記したものである. 従って nginx 設定については触れていない.

物理ホストを汚さずに「nginx 実践ガイド」の学習ができるように、docker 上に同環境を作る手順を記す
ただし、「nginx 実践ガイド」の無断転載にならぬように nginx に関する内容は記さない

環境

ホスト

項目 バージョン
OS Ubuntu 18.04
docker-compose 1.29
Docker Engine Community 19.03.13

docker コンテナ

項目 バージョン
nginx 1.21
jekyll 4.0

 

docker-compose 置き場

使い方は RADME.md に記している

https://github.com/robozushi10/nginx-jekyll.git

 

補足説明

1. 構築するシステムの構成

nginx の設定を変更したい場合は PV/etc/nginx/conf.d/default.conf を編集する.

本サンプルでは、PV/SHARE/www/dir/. に公開したいファイルを配置する.

image.png

 

2. ファイル構成

「nginx 実践ガイド」の無断転載になるといけないので、詳細は記さない

./PV
./PV/nginx
./PV/nginx/etc
./PV/nginx/etc/nginx  #.................... Docker Image「nginx:1.21」から取り出したファイルを置く
./PV/nginx/etc/nginx/fastcgi_params #...... Docker Image「nginx:1.21」から取り出したファイル
./PV/nginx/etc/nginx/scgi_params #......... Docker Image「nginx:1.21」から取り出したファイル
./PV/nginx/etc/nginx/nginx.conf #.......... 「nginx 実践ガイド」を参照
./PV/nginx/etc/nginx/uwsgi_params #........ Docker Image「nginx:1.21」から取り出したファイル
./PV/nginx/etc/nginx/conf.d
./PV/nginx/etc/nginx/conf.d/default.conf #. 「nginx 実践ガイド」を参照
./PV/nginx/etc/nginx/mime.types #.......... Docker Image「nginx:1.21」から取り出したファイル
./PV/nginx/etc/nginx/modules #............. Docker Image「nginx:1.21」から取り出したファイル(symlink)
./PV/SHARE
./PV/SHARE/www
./PV/SHARE/www/dir
./PV/SHARE/www/dir/index.html .......... 日時を書き出しただけのテキストファイル
./PV/SHARE/www/dir/_site
./PV/SHARE/www/dir/_site/index.html .... 上記 index.html が複製されて配置される
./docker-compose.yml

3. ファイル詳細

docker-compose.yml

version: '3.7'
services:
  nginx:
    image: nginx:1.21
    container_name: mynginx0121
    ports:
      - "51338:80"
    volumes:
      - "./PV/nginx/etc/nginx/:/etc/nginx/"
      - "./PV/SHARE/www/dir:/www/dir"
    logging:
      driver: json-file
      options:
        max-file: '4'
        max-size: 1m
    depends_on:
      - jekyll
  jekyll:
    image: jekyll/jekyll:4.0
    container_name: myjekyll
    expose:
      - "4000"
    command: >
        bash -c '
          date +"%Y/%m/%d %H:%M:%S" > /srv/jekyll/index.html
          jekyll serve --force_polling
        '
    volumes:
      - "./PV/SHARE/www/dir:/srv/jekyll"
    logging:
      driver: json-file
      options:
        max-file: '4'
        max-size: 1m

 

実行結果

次のように物理ホストの ./PV/SHARE/www/dir/index.html が配信されていれば OK.

index.html は docker-compose.yml の中で作成しており、単に日時が記されたファイルである.

image.png

 

以上.

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?