yikegaya’s blog

仕事関連(Webエンジニア)と資産運用について書いてます

nginxを使ったrailsデプロイ時の404エラー対応で地味にハマったこと

こんな感じのnginxのDockerfileと独自設定ファイルを作ってECSにデプロイしたがhealth checkが404で落ちる

FROM nginx:1.19-alpine

ENV LANG C.UTF-8
ENV TZ Asia/Tokyo

COPY ./docker/nginx/webapp.conf /etc/nginx/conf.d/webapp.conf

RUN mkdir -p /workdir
ENV APP_ROOT /workdir

WORKDIR $APP_ROOT

VOLUME /workdir/tmp

CMD /usr/sbin/nginx -g 'daemon off;' -c /etc/nginx/nginx.conf

対応

Dockerfileで不要な設定ファイルの削除を追加したら直った。

# COPYの前にrm追加
RUN rm -f /etc/nginx/conf.d/*
COPY ./docker/nginx/webapp.conf /etc/nginx/conf.d/webapp.conf

nginxの設定ファイル/etc/nginx/nginx.confから今回独自に作ったwebapp.confを読ませていたけど元からある他の不要設定ファイルにも影響受けてしまってたっぽい。

# ls /etc/nginx/conf.d/*.conf
/etc/nginx/conf.d/default.conf  /etc/nginx/conf.d/webapp.conf