之前有碰到使用虚拟机共享文件夹的文件同步问题
发现一种新方案,直接将文件置于docker镜像中,然后配置ssh,通过sftp协议访问即可
当然,sftp默认使用有一定的安全性问题,暂不考虑
本地使用vscode,配合sftp插件来使用
demo为hexo开发环境,与上次的版本比较,在使用上有了很大的精简
Dockerfile
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
| FROM node:lts-alpine MAINTAINER bbbht <plateau.loess@gmail.com> WORKDIR /hexo ENV LANG C.UTF-8 VOLUME [ "/sys/fs/cgroup" ]
COPY hexo /hexo
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apk/repositories && \ apk update && \ apk add --no-cache openrc openssh git tzdata && \ echo -e root:root | chpasswd && \ ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \ echo "Asia/Shanghai" > /etc/timezone && \ git config user.name bbbht && \ git config user.email plateau.loess@gmail.com && \ git config core.fileMode false
RUN echo "PermitRootLogin yes" >> /etc/ssh/sshd_config && \ mkdir /run/openrc/ && \ touch /run/openrc/softlevel && \ rc-update add sshd && \ rc-status && \ /etc/init.d/sshd start
RUN npm install hexo-cli -g --no-optional && \ npm set registry https://registry.npmjs.org/ && \ npm install --no-optional --no-bin-links && \ rm -rf /var/cache/apk/* /tmp/*
RUN hexo version
CMD rc-service sshd restart && hexo s
|
通过echo -e root:root | chpasswd
方式设置root密码
通过安装tzdata,修改了时区为 UTC+0800
安装openrc,设置ssh开机启动
其中rc-status
为必要步骤
然后编辑更新等工作在主机系统中完成即可
运行docker
1 2 3 4
| # 构建镜像 docker build -t hexo:alpine . # 运行容器,不指定CMD命令,使用Dockerfile中的默认命令,启动sshd及hexo docker run -d --name hexo-server -p 4000:4000 -p 4022:22 hexo:alpine
|
配置sftp插件
安装插件
打开指定的空目录
Ctrl + Shift + P
输入 sftp:config
编辑生成的sftp.json文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| { "protocol": "sftp", "host": "192.168.3.144", "username": "root", "password": "root", "port": 4022, "uploadOnSave": false, "downloadOnOpen": false, "watcher": { "files": "**/*", "autoUpload": true, "autoDelete": true }, "ignore": [ "node_modules", ".vscode", ".idea", ".DS_Store" ], "remotePath": "/hexo" }
|
然后Ctrl + Shift + P
输入 sftp:Download
即可获取远程代码,并保持同步
不再有文件修改状态的问题
具体使用及配置说明,请移步参考链接
参考链接
sftp sync extension for VS Code
原文链接