# ---- 자산 URL 에 내용 해시를 박는 단계 ---- # 프록시(NPM)가 js/css 응답에 제 캐시 헤더(Expires, max-age)를 덧붙이므로 # 원본에서 no-cache 를 줘도 브라우저가 옛 파일을 계속 쓴다. 내용이 바뀌면 # URL 도 바뀌게 해 두어야 새 배포가 제대로 반영된다. FROM alpine:3.20 AS stamp WORKDIR /site COPY site/ ./ RUN set -eu; \ v=$(cat assets/crossword.css assets/crossword.js | sha256sum | cut -c1-10); \ for f in *.html; do \ sed -i -e "s|assets/crossword\.css|assets/crossword.css?v=${v}|g" \ -e "s|assets/crossword\.js|assets/crossword.js?v=${v}|g" "$f"; \ done; \ echo "asset stamp: ${v}"; \ grep -o 'assets/crossword\.[a-z]*?v=[0-9a-f]*' korean.html FROM nginx:1.27-alpine # 기본 서버 설정 제거 후 8080 포트용 설정 적용 RUN rm -f /etc/nginx/conf.d/default.conf COPY nginx/default.conf /etc/nginx/conf.d/default.conf COPY --from=stamp /site/ /usr/share/nginx/html/ EXPOSE 8080