执行 Dockerfile 时找不到 Json-server 命令

问题描述 投票:0回答:1

我正在尝试做一个 Dockerized Angular + Json-Server 应用程序,但我在设置 json-server 时遇到了麻烦,尽管我将其安装在 Dockerfile 中,但使用 docker 日志告诉我找不到命令 json-server:

这就是我的 Dockerfile 的样子:

    FROM node:18 as CervantesJuradoBuild
    
    ARG workdir="/home/CervantesJurado"
    
    WORKDIR /appContainer
    
    COPY /home/CervantesJurado/angular/A_Animals /appContainer
    
    RUN echo pwd
    
    WORKDIR /appContainer/A_Animals
    
    RUN npm install -g @angular/cli
    
    RUN npm cache clean --force
    
    RUN npm install --legacy-peer-deps
    
    RUN npm run build
    
    FROM nginx as CervantesJuradoApp
    
    ENV name="CervantesJurado"
    
    LABEL author="$name"
    
    RUN apt-get update && \
        apt-get install -y openssh-server nodejs npm
    
    RUN npm install -g json-server
    
    RUN mkdir -p /run/sshd
    
    RUN sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
    
    RUN useradd -m -s /bin/bash $name && \
        mkdir -p /home/$name/.ssh && \
        chmod 700 /home/$name/.ssh
    
    COPY /home/CervantesJurado/angular/A_Animals/id_rsa.pub /home/$name/.ssh/authorized_keys
    
    COPY /home/CervantesJurado/angular/animals.json /home/$name/
    
    RUN chown -R $name:$name /home/$name/.ssh && \
        chmod 600 /home/$name/.ssh/authorized_keys
    
    USER root
    
    EXPOSE 22 80 3000
    
    CMD ["sh", "-c", "json-server --watch /home/$name/animals.json --host 0.0.0.0 & service ssh start && nginx -g 'daemon off;'"]
    
    COPY --from=CervantesJuradoBuild /appContainer/dist/a-animals /usr/share/nginx/html

这就是我运行它的方式:

docker run -d -p 8080:80 -p 2222:22 -p 3000:3000 --name cervantes_container cervantesjurado:prueba3

运行 docker run 命令后,我使用 docker 日志查看发生了什么:

docker logs cervantes_container

sh: 1: json-server: not found

angular docker nginx dockerfile json-server
1个回答
0
投票

如果有人作为最后一个资源来到这里并且您绝望了,请不要使用 json-server,而是使用 npm install [电子邮件受保护] :)

© www.soinside.com 2019 - 2024. All rights reserved.