在 Laravel sail 中启动 SSH 守护进程
Start SSH daemon in Laravel sail
我正在使用 Laravel Sail 并发布了 Dockerfile
(因此我可以手动编辑它)。原因是我需要在容器本身上为我正在使用的程序使用 OpenSSH 服务器。
我可以通过将 && apt-get install -y openssh-server
添加到包部分并使用以下配置来安装 OpenSSH:
RUN mkdir /var/run/sshd
RUN sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
RUN sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd
EXPOSE 22
但问题是它不会在容器启动时启动。
根据 this answer 你可以添加一个 ENTRYPOINT
如下:
ENTRYPOINT service ssh restart && bash
但是你只能有一个 ENTRYPOINT
和 Laravel Sail 默认有这个:
ENTRYPOINT ["start-container"]
我试过以下方法:
- 将
/usr/sbin/sshd
添加到 start-container
脚本 - 它没有启动
- 根据 this answer 将
CMD ["/usr/sbin/sshd", "-D"]
添加到 Dockerfile
- 启动容器时出现权限被拒绝错误
因为 php 容器使用 supervisor you can add another application to the config. Reference for the config can be found here.
例子
ssh.ini:
[program:sshd]
command=/usr/sbin/sshd -D
我正在使用 Laravel Sail 并发布了 Dockerfile
(因此我可以手动编辑它)。原因是我需要在容器本身上为我正在使用的程序使用 OpenSSH 服务器。
我可以通过将 && apt-get install -y openssh-server
添加到包部分并使用以下配置来安装 OpenSSH:
RUN mkdir /var/run/sshd
RUN sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
RUN sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd
EXPOSE 22
但问题是它不会在容器启动时启动。
根据 this answer 你可以添加一个 ENTRYPOINT
如下:
ENTRYPOINT service ssh restart && bash
但是你只能有一个 ENTRYPOINT
和 Laravel Sail 默认有这个:
ENTRYPOINT ["start-container"]
我试过以下方法:
- 将
/usr/sbin/sshd
添加到start-container
脚本 - 它没有启动 - 根据 this answer 将
CMD ["/usr/sbin/sshd", "-D"]
添加到Dockerfile
- 启动容器时出现权限被拒绝错误
因为 php 容器使用 supervisor you can add another application to the config. Reference for the config can be found here.
例子
ssh.ini:
[program:sshd]
command=/usr/sbin/sshd -D