gpt4 book ai didi

node.js - 如何通过 SSH 连接到 Node 容器应用程序?

转载 作者:行者123 更新时间:2023-12-02 22:58:37 25 4
gpt4 key购买 nike

使用 docker 运行 Node 应用程序,我无法通过 Azure 门户中的 SSH 访问它。我添加了一个 ssh 配置文件,并使用 apk add openssh。该应用程序运行良好,无需添加添加 SSH 的命令。不知道如何让它正常工作。 azure 连接被拒绝

FROM node:14-alpine as builder
WORKDIR /app/

COPY package.json yarn.lock /app/

RUN yarn

ADD . .

RUN yarn build

FROM node:14-alpine as runner
WORKDIR /app/
ENV NODE_ENV=production

COPY --from=builder /app/build /app/
COPY --from=builder /app/package.json /app/yarn.lock /app/
COPY src/database/prisma/schema.prisma /app/prisma/

RUN yarn

COPY docker/sshd_config /etc/ssh/
RUN mkdir /var/run/sshd
RUN apk add openssh && echo "root:MyP@ssword1" | chpasswd

#EXPOSE 8080
#CMD node web_server/index.js
EXPOSE 8080 2222
CMD /usr/sbin/sshd &; node web_server/index.js

最佳答案

如果您的应用运行良好,请尝试添加以下内容:

sshd_config 文件添加到您的存储库,如下例所示。

Port            2222
ListenAddress 0.0.0.0
LoginGraceTime 180
X11Forwarding yes
Ciphers aes128-cbc,3des-cbc,aes256-cbc,aes128-ctr,aes192-ctr,aes256-ctr
MACs hmac-sha1,hmac-sha1-96
StrictModes yes
SyslogFacility DAEMON
PasswordAuthentication yes
PermitEmptyPasswords no
PermitRootLogin yes
Subsystem sftp internal-sftp

在您的 Dockerfile 中,尝试添加以下命令:

# ssh
COPY docker/sshd_config /etc/ssh/
RUN mkdir /var/run/sshd
RUN apk add openssh && echo "root:MyP@ssword1" | chpasswd

COPY sshd_config /etc/ssh/
COPY init.sh /usr/local/bin/

EXPOSE 8080 2222
CMD ["bash","init.sh"]

在项目的根文件夹中添加init.sh

#!/bin/bash
set -e
echo "Starting SSH ..."
service ssh start
node web_server/index.js

或者,将最后一个代码更改为 CMD ["/usr/sbin/sshd","-D", "node web_server/index.js"]

更多引用,请参阅here1here2

关于node.js - 如何通过 SSH 连接到 Node 容器应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66284771/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com