1

我正在尝试使用 docker 容器建立模块化开发环境,其中:

1)我的主机上没有安装 sdks/dev 工具/编译器(那些应该只存在于特定容器中)

2) 在 OSX 上的 GUI 版本中使用我的文本编辑器(Vim、Spacemacs)

这里的主要问题是大多数时候文本编辑器特定的语言插件(如Spacemacs 中的elm 层)需要这些工具才能正常工作。

有什么帮助吗?

4

1 回答 1

2

最后,对我有用的是使用以下命令在我的 .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")

这是我的榆树开发环境

于 2016-07-03T22:25:41.517 回答