Dockerfile 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. #前端预构建
  2. FROM cmfont-cache:latest as builderFont
  3. COPY /client .
  4. RUN npm run build
  5. # 后端预构建
  6. FROM cm-gocache:latest AS builder
  7. RUN go env -w GO111MODULE=on
  8. RUN go env -w GOPROXY=https://goproxy.cn,direct
  9. COPY . /go/src/construction_management
  10. # 编译
  11. WORKDIR /go/src/construction_management/server/web
  12. #install 执行文件会生成在 gopath/bin 中
  13. RUN go install ./
  14. # 正式镜像
  15. FROM alpine:3.13
  16. # 安装nginx
  17. RUN echo http://mirrors.aliyun.com/alpine/v3.10/main>/etc/apk/repositories && \
  18. echo http://mirrors.aliyun.com/alpine/v3.10/community>>/etc/apk/repositories
  19. RUN apk update && apk upgrade \
  20. && apk add nginx \
  21. && mkdir /run/nginx \
  22. touch /run/nginx.pid && \
  23. chmod 755 /run.sh
  24. RUN find / -name ngnix.pid
  25. # 复制配置文件和前端文件
  26. COPY --from=builder /go/src/construction_management/deployment/default.conf /etc/nginx/conf.d
  27. COPY --from=builderFont /dist /var/www/html/client
  28. # 后端相关
  29. # 把编译环境中编译好的 chat 复制到生产镜像中的 bin/chat 文件名称 不是目录
  30. #COPY --from=builder /go/bin/chat /bin/chat
  31. # /chat 放到根目录
  32. COPY --from=builder /go/bin/web /server
  33. COPY --from=builder /go/src/construction_management/server/web/config-debug.yaml /config-debug.yaml
  34. COPY --from=builder /go/src/construction_management/server/web/config-uat.yaml /config-uat.yaml
  35. COPY --from=builder /go/src/construction_management/server/web/config-pro.yaml /config-pro.yaml
  36. RUN mkdir -p /lib
  37. COPY --from=builder /go/src/construction_management/server/lib/*.json /lib/
  38. RUN chmod 777 /lib/*.json
  39. RUN chmod 777 /server
  40. RUN chmod 777 /config-debug.yaml
  41. RUN chmod 777 /config-uat.yaml
  42. RUN chmod 777 /config-pro.yaml
  43. ENV ADDR=:6060
  44. # 申明暴露的端口
  45. EXPOSE 80
  46. EXPOSE 6060
  47. # 设置服务入口
  48. ENTRYPOINT ["/run.sh"]
  49. # ENTRYPOINT ["sh","-c", "/server" ]
  50. # FROM centos:7
  51. # ADD /bin/ /
  52. # RUN chmod 777 /construction_management
  53. # ENV PARAMS=""
  54. # EXPOSE 6060
  55. # ENTRYPOINT ["sh","-c","/construction_management $PARAMS"]