herokuにWebアプリケーションをデプロイして、S3を使っていくためにnginxを入れたいです。
ですが、DockerのGUIを見てみると、Nginxが入っていないので、おそらくbuildしても入っていないのだと思います。
前回の質問内容だと入っていルト回答していまいsたが、一度dockerのimageを全部削除しているので、入っていません。
#問題のソースコード
以下、docker-compose.yml
services: app: build: context: /Users/taka/hondaapp command: bash -c "rm -f tmp/pids/server.pid && bundle exec puma -C config/puma.rb" depends_on: db: condition: service_started volumes: - /Users/taka/hondaapp:/mysql:rw - public-data:/mysql/public:rw - tmp-data:/mysql/tmp:rw - log-data:/mysql/log:rw db: environment: MYSQL_PASSWORD: password image: mysql:5.7 volumes: - /Users/taka/hondaapp/tmp/db:/var/lib/mysql/data:rw web: build: context: /Users/taka/hondaapp/nginx depends_on: app: condition: service_started ports: - published: 80 target: 80 volumes: - public-data:/hondaapp/public:rw - tmp-data:/hondaapp/tmp:rw version: '3' volumes: db-data: {} log-data: {} public-data: {} tmp-data: {}
nginx_docker/Dockerfile
FROM nginx:latest RUN rm -f /etc/nginx/conf.d/* ADD nginx.conf /etc/nginx/conf.d/fitO2.conf CMD /usr/sbin/nginx -g 'daemon off;' -c /etc/nginx/nginx.conf
ngix_docker/ngix.conf
upstream rails_test { server unix:///rails_test/tmp/sockets/puma.sock; } server { listen 80; server_name localhost; access_log /var/log/nginx/access.log main; error_log /var/log/nginx/error.log debug; root /rails_test/public; client_max_body_size 100m; error_page 404 /404.html; error_page 505 502 503 504 /500.html; try_files $uri/index.html $uri @rails_test; keepalive_timeout 5; location @rails_test { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_pass http://rails_test; }
Dockerfile
FROM ruby:2.6.5 RUN apt-get update -qq && \ apt-get install -y build-essential \ libpq-dev \ yarn \ nodejs # 作業ディレクトリの作成、設定 RUN mkdir /app_name ##作業ディレクトリ名をAPP_ROOTに割り当てて、以下$APP_ROOTで参照 ENV APP_ROOT /app_name WORKDIR $APP_ROOT # ホスト側(ローカル)のGemfileを追加する(ローカルのGemfileは【3】で作成) ADD ./Gemfile $APP_ROOT/Gemfile ADD ./Gemfile.lock $APP_ROOT/Gemfile.lock # Gemfileのbundle install RUN bundle install ADD . $APP_ROOT
nginx/Dockerfile
FROM nginx:latest # インクルード用のディレクトリ内を削除 RUN rm -f /etc/nginx/conf.d/* # Nginxの設定ファイルをコンテナにコピー ADD nginx.conf /etc/nginx/hondaapp.conf # ビルド完了後にNginxを起動 CMD /usr/sbin/nginx -g 'daemon off;' -c /etc/nginx/hondaapp.conf
nginx/nginx.conf
user root; worker_processes 1; events{ worker_connections 512; } # ソケット接続 http { upstream hondaapp{ server unix:///hondaapp/tmp/sockets/puma.sock; } server { # simple load balancing listen 80; server_name localhost; #ログを記録しようとするとエラーが生じます #root /hondaapp/public; #access_log logs/access.log; #error_log logs/error.log; location / { proxy_pass http://hondaapp; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; } } }
#やってみたこと
一度docker-compose config
をしてみて、出てきたソースコードを貼り付けてみたのですが、
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/04/19 03:13
2021/04/19 10:44
2021/04/19 12:57
2021/04/19 18:49
2021/04/20 00:20