【发布时间】:2016-07-11 02:19:47
【问题描述】:
Rubymine 可以选择使用 Vagrant 和 SSH 添加远程 sdks,但是我决定使用 Docker。我已经创建了一个 Ruby 容器,但我不知道如何启用对它的 SSH 访问,以便 Rubymine 可以将其设置为远程 SDK。
有可能吗?
尝试过这篇文章,但是 Ruby 镜像没有 yum 并且这个包 epel-release 是针对 Fedora/RedHat 的。
【问题讨论】:
Rubymine 可以选择使用 Vagrant 和 SSH 添加远程 sdks,但是我决定使用 Docker。我已经创建了一个 Ruby 容器,但我不知道如何启用对它的 SSH 访问,以便 Rubymine 可以将其设置为远程 SDK。
有可能吗?
尝试过这篇文章,但是 Ruby 镜像没有 yum 并且这个包 epel-release 是针对 Fedora/RedHat 的。
【问题讨论】:
嘿,你在用这个official Ruby docker image吗?
如果是这样,它是基于 Debian 的,你必须使用 apt-get 来安装软件包。 这是一个方便的脚本,用于安装 openssh-server 并在 Dockerfile 中配置用户:
FROM ruby:2.1.9
#======================
# Install OpenSSH server (sshd)
#======================
RUN apt-get update -qqy \
&& apt-get -qqy install \
openssh-server \
&& echo "PidFile ${RUN_DIR}/sshd.pid" >> /etc/ssh/sshd_config \
&& sed -i 's|session required pam_loginuid.so|session optional pam_loginuid.so|g' /etc/pam.d/sshd \
&& mkdir -p /var/run/sshd \
&& rm -rf /var/lib/apt/lists/*
# Add user rubymine with password rubymine and give ownership of rubymine home dir
RUN adduser --quiet rubymine \
&& echo "rubymine:rubymine" | chpasswd \
&& chown -R rubymine:rubymine /home/rubymine \
EXPOSE 22
我不确定您可以使用 Rubymine 执行哪些具体配置。但是不需要 ssh 也可以用容器打开 tty:
#run it as a daemon
docker run -d --name=myruby ruby:2.19
#connect to it
docker -it exec myruby /bin/bash
更新:
尝试设置 DOCKER_HOST 环境变量来监听 tcp 端口:
export DOCKER_HOST='tcp://localhost:2376'
【讨论】:
docker-machine ls 然后docker-machine ip <listed_vm> 来发现这一点