我試圖設置遠程調試到Docker Debian容器,以調試我的Windows筆記本電腦上的Ruby應用程序。如何在Docker容器中配置Debian SSHD進行遠程調試?
我對Ruby應用程序,並在SSHD容器中運行,但我發現了配置SSHD的配方是不符合Linux發行版完全兼容Ruby映像基於。
我根據本多克爾文檔頁面上我的SSHD配置:https://docs.docker.com/engine/examples/running_ssh_service/
我的圖像是基於紅寶石:從多克爾集線器,其使用的Debian 8,而不是在上面的SSHD實施例中使用的Ubuntu 16.04 2.2圖像。
我可以進入SSH提示符,但我無法使用dockerfile中設置的根目錄的屏幕錄像密碼進行登錄。
我接受任何解決方案的工作,或者正確啓用root登錄或添加具有正確權限的新用戶以允許遠程調試。我只是好奇Debian上下文中哪條路徑最直接。如果它創建一個新用戶,他們需要什麼權限?
另外,爲了清楚起見,我將此視爲試運行,並且顯然會確保在以某種方式去除部署應用程序以用於開發之外的任何環境時以某種方式去除SSHD功能。
在此先感謝您的幫助。
這是我目前dockerfile
FROM ruby:2.2
RUN apt-get update && apt-get install -y \
build-essential \
libpq-dev \
nodejs \
openssh-server
RUN mkdir /var/run/sshd
RUN echo 'root:screencast' | chpasswd
RUN sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
# SSH login fix. Otherwise user is kicked off after login
RUN sed '[email protected]\s*required\s*[email protected] optional [email protected]' -i /etc/pam.d/sshd
ENV NOTVISIBLE "in users profile"
RUN echo "export VISIBLE=now" >> /etc/profile
RUN mkdir /MyApp
WORKDIR /MyApp
ADD Gemfile /MyApp/Gemfile
ADD Gemfile.lock /MyApp/Gemfile.lock
RUN bundle install
ADD . /MyApp
,這是我的搬運工,compose.yml
version: '2'
services:
web:
build: .
command: /CivilService/docker-dev-start.sh
volumes:
- .:/CivilService
ports:
- "3000:3000"
- "3022:22"
的docker-dev-start.sh看起來像這樣
#!/bin/bash
# start the SSH server for connecting the debugger in development
/usr/sbin/sshd -D &
bundle exec rails s -p 3000 -b '0.0.0.0'
你Dockerfile缺乏一個CMD或入口點 – user2915097
@ user2915097當您運行的泊塢窗,compose.yml適用命令'泊塢窗,構成up' –
更改sed to'RUN sed -i's/PermitRootLogin。*/PermitRootLogin yes /'' – Matt