【问题标题】:Run npm test inside a docker image and exit在 docker 镜像中运行 npm test 并退出
【发布时间】:2018-12-22 06:08:08
【问题描述】:

我基本上有一个节点 js 应用程序的 docker 映像。

存储库标签图像 ID 创建大小 abc-test 0.1 1ba85e0ca455 7 小时前 1.37GB

我想从文件夹 /data/node/src 运行 npm test,但这似乎不起作用。

这是我正在尝试的命令:

docker run -p 80:80 --entrypoint="cd /data/node/src && npm run test" abc-test:0.1

但这似乎不起作用。

这是我的 dockerfile:

FROM python:2.7.13-slim
RUN apt-get update && apt-get install -y apt-utils curl
RUN echo 'deb http://nginx.org/packages/debian/ jessie nginx' > /etc/apt/sources.list.d/nginx.list

RUN apt-get update && apt-get install -y \
    build-essential \
    gcc \
    git \
    libcurl4-openssl-dev \
    libldap-2.4-2 \
    libldap2-dev \
    libmysqlclient-dev \
    libpq-dev \
    libsasl2-dev \
    nano \
    nginx=1.8.* \
    nodejs \
    python-dev \
    supervisor

ENV SERVER_DIR /data/applicationui/current/server

ADD src/application/server $SERVER_DIR

EXPOSE 14000 80
# version A: only start tornado, without nginx.
 WORKDIR $SERVER_DIR/src
 CMD ["npm","run","start:staging"]

谁能帮帮我。

【问题讨论】:

  • But that doesn't seems to be working. 是错误的错误信息

标签: node.js docker jenkins github kubernetes


【解决方案1】:

很确定您只能使用 ENTRYPOINT 和 CMD 运行一个命令。

来自他们的文档:

一个 Dockerfile 中只能有一个 CMD 指令。如果你列出了多个 CMD,那么只有最后一个 CMD 会生效。

与入口点相同:

ENTRYPOINT 有两种形式:

  1. ENTRYPOINT ["executable", "param1", "param2"](执行形式,首选)
  2. ENTRYPOINT 命令 param1 param2(shell 形式)

https://docs.docker.com/engine/reference/builder/#cmd https://docs.docker.com/engine/reference/builder/#entrypoint

我要做的解决方法如下

FROM ubuntu:16.04
WORKDIR /home/coins
RUN apt-get update

...
OTHER DOCKERFILE STUFF HERE
...


COPY ./entrypoint.sh /home/coins/
RUN chmod +x ./entrypoint.sh
ENTRYPOINT ./entrypoint.sh

入口点.sh:

#!/bin/bash
Can write whatever sh commands you need here..
exec sh ./some_script

编辑:

一个想法是您可以添加一个测试 sh 脚本并在其中触发这 2 个命令,然后您就可以使用 --entrypoint="test.sh" 启动它

【讨论】:

    猜你喜欢
    • 2022-10-15
    • 1970-01-01
    • 1970-01-01
    • 2017-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-06
    相关资源
    最近更新 更多