Docker
Docker Proxy 配置 | FuYao Docker 文档
FuYao 平台自定义镜像构建
目录结构
1 2 3 4
| ~/fuyao/my-docker/ ├── Dockerfile ├── nvim-config/ # ~/.config/nvim └── nvim-data/ # ~/.local/share/nvim
|
准备本地配置
1 2 3
| mkdir -p ~/fuyao/my-docker && cd ~/fuyao/my-docker cp -r ~/.config/nvim ./nvim-config cp -r ~/.local/share/nvim ./nvim-data
|
Dockerfile 模板(含 Neovim 环境)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| FROM infra-registry-vpc.cn-wulanchabu.cr.aliyuncs.com/data-infra/fuyao:luome-250704-0233 ENV DEBIAN_FRONTEND=noninteractive
ENV MAX_JOBS=1 ENV TZ=Asia/Shanghai
ARG PIP_OPTIONS="-i https://nexus-wl.xiaopeng.link/repository/ai_infra_pypi_group/simple --timeout 120"
RUN apt-get update && apt-get install -y \ ripgrep \ fd-find \ nodejs \ npm \ python3-pip \ && rm -rf /var/lib/apt/lists/*
RUN curl -LO https://github.com/neovim/neovim/releases/download/v0.10.4/nvim-linux64.tar.gz \ && tar -xzf nvim-linux64.tar.gz \ && mv nvim-linux64 /opt/nvim \ && ln -s /opt/nvim/bin/nvim /usr/local/bin/nvim \ && rm nvim-linux64.tar.gz
RUN pip install ${PIP_OPTIONS} pynvim
COPY nvim-config /root/.config/nvim COPY nvim-data /root/.local/share/nvim
COPY --from=infra-registry.cn-wulanchabu.cr.aliyuncs.com/data-infra/public:fuyao-base-1.9.7 \ /opt/data-infra /opt/data-infra ENV PATH="${PATH}:/opt/data-infra:/root/.local/share/nvim/mason/bin" ENTRYPOINT ["tini", "-s", "--"]
|
构建命令
1 2 3 4 5 6
| fuyao docker --push --site=fuyao_hk --image-name=my-nvim --image-tag=v1
|
使用镜像
1 2 3 4 5 6 7 8
| infra-registry-vpc.cn-wulanchabu.cr.aliyuncs.com/data-infra/fuyao:{image-name}-{image-tag}
fuyao kubernetes shell --image <镜像地址>
fuyao ssh <job_name>
|
常见问题
Neovim 插件报错 gsplit_plain nil
原因:容器内 Neovim 版本与本地不一致,插件 API 不兼容
解决:Dockerfile 中指定与本地相同的 Neovim 版本
1 2
| nvim --version | head -1
|
Mason LSP 无法使用
解决:确保 mason bin 目录在 PATH 中
1
| ENV PATH="${PATH}:/root/.local/share/nvim/mason/bin"
|
构建超时
- 使用
--site=fuyao_hk 访问 GitHub
- 或提前下载文件用
COPY 代替 curl
- 使用国内 pip 镜像源
参考资源