Dockerfile 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. # STAGE 1,在临时镜像中编译 tintin
  2. FROM alpine:latest
  3. # 安装编译器和依赖包
  4. RUN apk update \
  5. && apk add --no-cache git gcc libc-dev zlib-dev zlib-static pcre-dev make
  6. RUN git clone https://github.com/mudclient/tintin.git --branch beta-develop
  7. WORKDIR /tintin/src/
  8. # 这里 hack 了一下 gcc,强制静态编译。
  9. ENV PATH=.:/sbin:/bin:/usr/sbin:/usr/bin
  10. RUN echo '/usr/bin/gcc --static $*' > gcc && chmod +x gcc
  11. RUN ./configure && make && strip tt++
  12. # STAGE 2: 生成最终镜像
  13. FROM alpine:latest
  14. LABEL name="paotin"
  15. LABEL maintainer="dzp <danzipao@gmail.com>"
  16. ENV LANG=zh_CN.UTF8 \
  17. TERM=xterm-256color \
  18. SHELL=/bin/bash \
  19. HOME=/paotin \
  20. PATH=/paotin/bin:/usr/sbin:/usr/bin:/sbin:/bin
  21. WORKDIR /paotin/
  22. RUN apk update \
  23. && apk add --no-cache tmux bash
  24. # 设置时区为上海
  25. RUN apk add --no-cache tzdata \
  26. && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
  27. && echo "Asia/Shanghai" > /etc/timezone \
  28. && apk del tzdata
  29. COPY profile.sh /paotin/.bash_profile
  30. COPY tmux.conf /paotin/.tmux.conf
  31. COPY HOW-TO-PLAY.md /paotin/
  32. COPY bin /paotin/bin/
  33. COPY docs /paotin/docs/
  34. COPY etc /paotin/etc/
  35. COPY framework /paotin/framework/
  36. COPY plugins /paotin/plugins/
  37. COPY ids/EXAMPLE /paotin/ids/
  38. COPY ids/DEFAULT /paotin/ids/
  39. COPY --from=0 /tintin/src/tt++ /paotin/bin/
  40. RUN mkdir -p /paotin/log/
  41. RUN echo debug log > /paotin/log/debug.log
  42. RUN echo quest log > /paotin/log/quest.log
  43. RUN echo tt log > /paotin/log/tt.log
  44. ENTRYPOINT ["/bin/bash", "/paotin/bin/start-ui"]