# action.yml name: "build docker image and push to code" description: "build docker image and push to simcu code" runs: using: "composite" steps: - uses: docker://node:24 with: entrypoint: "/bin/bash" args: | -c "export https_proxy=http://100.100.13.14:8118 && \ export http_proxy=http://100.100.13.14:8118 && \ npm pkg set version=${{ github.ref_name }} && \ npm ci && \ # 关键:构建时强制开启 HISTORY 模式 echo 'VITE_ROUTER_MODE=history' > .env.production && \ npm run build-only" - uses: docker://ubuntu:latest with: entrypoint: "/bin/bash" args: | -c 'echo "FROM nginx:alpine" > Dockerfile && \ echo "COPY dist /usr/share/nginx/html" >> Dockerfile && \ echo "WORKDIR /usr/share/nginx/html/" >> Dockerfile && \ # 关键:Nginx 配置,解决刷新 404(去掉 # 必须加) echo "RUN echo \"server {\" > /etc/nginx/conf.d/default.conf" >> Dockerfile && \ echo "RUN echo \" listen 80;\" >> /etc/nginx/conf.d/default.conf" >> Dockerfile && \ echo "RUN echo \" server_name localhost;\" >> /etc/nginx/conf.d/default.conf" >> Dockerfile && \ echo "RUN echo \" root /usr/share/nginx/html;\" >> /etc/nginx/conf.d/default.conf" >> Dockerfile && \ echo "RUN echo \" index index.html;\" >> /etc/nginx/conf.d/default.conf" >> Dockerfile && \ echo "RUN echo \" location / {\" >> /etc/nginx/conf.d/default.conf" >> Dockerfile && \ echo "RUN echo \" try_files \$uri \$uri/ /index.html;\" >> /etc/nginx/conf.d/default.conf" >> Dockerfile && \ echo "RUN echo \" }\" >> /etc/nginx/conf.d/default.conf" >> Dockerfile && \ echo "RUN echo \"}\" >> /etc/nginx/conf.d/default.conf" >> Dockerfile && \ echo "已构建支持无 # 路由的 Dockerfile" && \ cat Dockerfile' - uses: actions/docker-build-push@main