设置像 Vim、Spacemacs 这样的文本编辑器来使用 docker 容器,而无需在主机上安装工具
Setting up Text editor like Vim,Spacemacs to work with docker containers without installing tools on the host machine
我正在尝试使用 docker 个容器设置模块化开发环境,
其中:
1) 没有 sdks/dev tools/compilers 安装在我的主机上(那些应该只存在于特定的容器中)
2) 在 OSX
的 GUI 版本中使用我的文本编辑器(Vim、Spacemacs)
这里的主要问题是大多数时候文本编辑器特定的语言插件(如 Spacemacs 中的 elm layer)需要这些工具才能正常工作。
有什么帮助吗?
最后对我有用的是在我的 .bash_profile 中使用以下命令设置全局 alias.sh 文件来源:
grep -q -F 'source ~/.docker-shared/alias.sh' ~/.bash_profile \
|| echo 'source ~/.docker-shared/alias.sh' >> ~/.bash_profile
和
mkdir -p ~/.docker-shared && touch ~/.docker-shared/alias.sh
然后对于每个开发环境,我可以使用 docker-compose:
创建包含来自容器的所有命令的 alias.sh 文件
alias elm-repl='docker-compose run web elm-repl'
当我的 docker-compose.yml 包含以下内容时:
version: "2"
services:
web:
build: .
image: web
ports:
- "8000:8000"
volumes:
- .:/app
- ~/.docker-shared:/shared
entrypoint: ""
command: bash -c "mkdir -p /shared && cp /app/alias.sh /shared"
运行
docker-compose up web
将设置我的环境和别名。这些别名将在文本编辑器中使用。
在我的例子中,我必须将 vimrc 和 spacemacs 设置为使用交互式 shell 才能工作,所以我在我的配置文件中添加了以下行:
.vimrc:
set shellcmdflag=-ic
.spacemacs:
(setq shell-command-switch "-ic")
这是我的 elm dev environment
我正在尝试使用 docker 个容器设置模块化开发环境, 其中:
1) 没有 sdks/dev tools/compilers 安装在我的主机上(那些应该只存在于特定的容器中)
2) 在 OSX
的 GUI 版本中使用我的文本编辑器(Vim、Spacemacs)这里的主要问题是大多数时候文本编辑器特定的语言插件(如 Spacemacs 中的 elm layer)需要这些工具才能正常工作。
有什么帮助吗?
最后对我有用的是在我的 .bash_profile 中使用以下命令设置全局 alias.sh 文件来源:
grep -q -F 'source ~/.docker-shared/alias.sh' ~/.bash_profile \
|| echo 'source ~/.docker-shared/alias.sh' >> ~/.bash_profile
和
mkdir -p ~/.docker-shared && touch ~/.docker-shared/alias.sh
然后对于每个开发环境,我可以使用 docker-compose:
创建包含来自容器的所有命令的 alias.sh 文件 alias elm-repl='docker-compose run web elm-repl'
当我的 docker-compose.yml 包含以下内容时:
version: "2"
services:
web:
build: .
image: web
ports:
- "8000:8000"
volumes:
- .:/app
- ~/.docker-shared:/shared
entrypoint: ""
command: bash -c "mkdir -p /shared && cp /app/alias.sh /shared"
运行
docker-compose up web
将设置我的环境和别名。这些别名将在文本编辑器中使用。
在我的例子中,我必须将 vimrc 和 spacemacs 设置为使用交互式 shell 才能工作,所以我在我的配置文件中添加了以下行:
.vimrc:
set shellcmdflag=-ic
.spacemacs:
(setq shell-command-switch "-ic")
这是我的 elm dev environment