0%

VSCode 配合sftp同步编辑远程代码

之前有碰到使用虚拟机共享文件夹的文件同步问题
发现一种新方案,直接将文件置于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
原文链接