概要
nginx の proxy_pass にコンテナ名を指定する方法と注意事項を紹介します
docker-compose で nginx と proxy_pass するアプリを定義します
環境
- macOS 11.1
- docker 20.10.2
ポイント
- upstream は使わない
- proxy_pass するアプリ側は 0.0.0.0 でバインドするようにする
Sinatra app
bundle init
vim Gemfile
gem "sinatra"
gem "thin"
bundle install
vim app.rb
require 'sinatra'
get '/' do
'ok'
end
Dockerfile
vim Dockerfile
FROM ruby
ADD . /app
WORKDIR /app
RUN bundle install
CMD ["bundle", "exec", "ruby", "app.rb", "-o", "0.0.0.0"]
nginx default.conf
- vim
default.conf
server {
listen 80;
location / {
proxy_pass http://app:4567/;
}
}
Dockerfile-web
vim Dockerfile-web
FROM nginx
ADD ./default.conf /etc/nginx/conf.d/default.conf
docker-compose
vim docker-compose.yml
version: '3.8'
services:
web:
image: web
ports:
- 80:80
depends_on:
- app
app:
image: app:latest
ビルド
docker build -t app .
docker build -f Dockerfile-web -t web .
動作確認
docker-compose up -d
curl localhsot
0 件のコメント:
コメントを投稿