设置像 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