Dockerfile 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #docker 17.05+版本支持
  2. #sudo docker build -t gopub .
  3. #sudo docker run --name gopub -p 8192:8192 --restart always -d gopub:latest
  4. FROM golang:1.12.4-alpine3.9 as golang
  5. RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories && \
  6. apk update && \
  7. apk add bash && \
  8. rm -rf /var/cache/apk/* /tmp/*
  9. ADD src/ /data/gopub/src/
  10. ADD control /data/gopub/control
  11. WORKDIR /data/gopub/
  12. RUN ./control build
  13. FROM node:11.14.0-alpine as node
  14. RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories && \
  15. apk update --no-cache && \
  16. apk add --no-cache --virtual .gyp python make g++ && \
  17. rm -rf /var/cache/apk/* /tmp/*
  18. ADD ./ /data/gopub/
  19. WORKDIR /data/gopub/vue-gopub
  20. RUN npm install -g node-gyp --registry=https://registry.npm.taobao.org && \
  21. npm install node-sass sass-loader --save-dev --registry=https://registry.npm.taobao.org --disturl=https://npm.taobao.org/dist --sass_binary_site=https://npm.taobao.org/mirrors/node-sass/ && \
  22. npm install --registry=https://registry.npm.taobao.org && \
  23. npm run build
  24. FROM alpine:3.9.3
  25. MAINTAINER Linc "13579443@qq.com"
  26. ENV TZ='Asia/Shanghai'
  27. RUN TERM=linux && export TERM
  28. USER root
  29. RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories && \
  30. apk update && \
  31. apk add ca-certificates bash tzdata sudo curl wget openssh git && \
  32. echo "Asia/Shanghai" > /etc/timezone && \
  33. cp -r -f /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
  34. rm -rf /var/cache/apk/* /tmp/* && \
  35. mkdir -p /data/htdocs && \
  36. mkdir -p /data/logs && \
  37. ssh-keygen -q -N "" -f /root/.ssh/id_rsa && \
  38. #输出的key需要加入发布目标机的 ~/.ssh/authorized_keys
  39. cat ~/.ssh/id_rsa.pub
  40. WORKDIR /data/gopub
  41. ADD control /data/gopub/control
  42. COPY --from=golang /data/gopub/src/gopub /data/gopub/src/gopub
  43. COPY --from=golang /data/gopub/src/conf /data/gopub/src/conf
  44. COPY --from=golang /data/gopub/src/logs /data/gopub/src/logs
  45. COPY --from=golang /data/gopub/src/agent /data/gopub/src/agent
  46. COPY --from=node /data/gopub/src/views /data/gopub/src/views
  47. COPY --from=node /data/gopub/src/static /data/gopub/src/static
  48. CMD ["./control","rundocker"]