Dockerfile 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. # STAGE 1,在临时镜像中编译 tintin
  2. FROM alpine:3.18.3
  3. RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apk/repositories
  4. # 安装编译器和依赖包
  5. RUN apk update \
  6. && apk add --no-cache git gcc libc-dev zlib-dev zlib-static pcre-dev make curl
  7. RUN git clone --depth 1 https://github.com/junegunn/vim-plug.git /vim-plug
  8. RUN git clone --depth 1 https://github.com/dzpao/vim-mbs.git /vim-mbs
  9. RUN git clone --depth 1 https://github.com/morhetz/gruvbox.git /gruvbox
  10. RUN git clone --depth 1 https://github.com/yegappan/mru.git /mru
  11. RUN git clone --depth 1 https://github.com/jlanzarotta/BufExplorer.git /BufExplorer
  12. RUN git clone --depth 1 https://github.com/mhinz/vim-startify.git /vim-startify
  13. RUN git clone --depth 1 https://github.com/mudclient/tintin.git --branch beta-develop
  14. WORKDIR /tintin/src/
  15. # 这里 hack 了一下 gcc,强制静态编译。
  16. ENV PATH=.:/sbin:/bin:/usr/sbin:/usr/bin
  17. RUN echo '/usr/bin/gcc --static $*' > gcc && chmod +x gcc
  18. RUN ./configure && make && strip tt++
  19. # STAGE 2: 生成最终镜像
  20. FROM alpine:3.18.3
  21. LABEL name="paotin"
  22. LABEL maintainer="dzp <danzipao@gmail.com>"
  23. ENV LANG=zh_CN.UTF8 \
  24. TERM=xterm-256color \
  25. SHELL=/bin/bash \
  26. HOME=/paotin \
  27. PATH=/paotin/bin:/usr/sbin:/usr/bin:/sbin:/bin
  28. WORKDIR /paotin/
  29. RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apk/repositories
  30. RUN apk update \
  31. && apk add --no-cache tmux bash ncurses less neovim nano lf
  32. # 设置时区为上海
  33. RUN apk add --no-cache tzdata \
  34. && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
  35. && echo "Asia/Shanghai" > /etc/timezone \
  36. && apk del tzdata
  37. COPY profile.sh /paotin/.bash_profile
  38. COPY tmux.conf /paotin/.tmux.conf
  39. COPY init.tin /paotin/init.tin
  40. COPY HOW-TO-PLAY.md /paotin/
  41. COPY bin /paotin/bin/
  42. COPY docs /paotin/docs/
  43. COPY etc /paotin/etc/
  44. COPY framework /paotin/framework/
  45. COPY plugins /paotin/plugins/
  46. COPY mud /paotin/mud/
  47. COPY ids/EXAMPLE /paotin/ids/
  48. COPY ids/DEFAULT /paotin/ids/
  49. COPY ids/pkuxkx /paotin/ids/
  50. COPY ids/thuxyj /paotin/ids/
  51. COPY ids/paotin /paotin/ids/
  52. COPY init.vim /paotin/.config/nvim/
  53. COPY nanorc /root/.nanorc
  54. COPY --from=0 /vim-plug/plug.vim /paotin/.local/share/nvim/site/autoload/plug.vim
  55. COPY --from=0 /gruvbox /paotin/.local/share/nvim/plugged/gruvbox/
  56. COPY --from=0 /vim-mbs /paotin/.local/share/nvim/plugged/vim-mbs/
  57. COPY --from=0 /mru /paotin/.local/share/nvim/plugged/mru/
  58. COPY --from=0 /BufExplorer /paotin/.local/share/nvim/plugged/BufExplorer/
  59. COPY --from=0 /vim-startify /paotin/.local/share/nvim/plugged/BufExplorer/
  60. COPY --from=0 /tintin/src/tt++ /paotin/bin/
  61. RUN mkdir -p /paotin/log/
  62. RUN mkdir -p /paotin/tmux/
  63. ENTRYPOINT ["/bin/bash", "-i", "/paotin/bin/start-ui"]