Dockerize 框架测试“执行失败”

Posted

技术标签:

【中文标题】Dockerize 框架测试“执行失败”【英文标题】:Dockerize framework tests "Failed to exec" 【发布时间】:2018-03-14 16:48:41 【问题描述】:

我想 dockerize galenframework 测试。这是我目前拥有的:

Docker 文件

FROM node:8.6
RUN mkdir -p /usr/src/galen
WORKDIR /usr/src/galen
COPY package.json /usr/src/galen/
RUN npm install
COPY . /usr/src/galen

docker-compose.yml

version: '2'
services:
  galenframework:
    build:
      context: .
      dockerfile: Dockerfile
    volumes:
      - .:/usr/src/galen

package.json


  "name": "docker_galen",
  "version": "1.0.0",
  "description": "Node.js on Docker with Galen",
  "dependencies": 
    "galenframework-cli": "2.3.5"
  

运行docker-compose up -d 后出现以下错误:

info 安装意外退出 npm info 生命周期 galenframework-cli@2.3.5~postinstall: 执行 postinstall 失败 script npm WARN docker_galen@1.0.0 没有存储库字段。 npm 警告 docker_galen@1.0.0 没有许可证字段。 npm 错误!代码 ELIFECYCLE npm 错误! errno 1 npm 错误! galenframework-cli@2.3.5 安装后:节点 postinstall.js npm 错误!退出状态 1 npm ERR! npm 错误!失败了 galenframework-cli@2.3.5 安装后脚本。 npm 错误!这大概是 npm 没问题。可能有额外的日志输出 以上。

我该如何解决这个问题?

【问题讨论】:

我尝试在 java 8 alpine 映像上重新运行此错误,因为我认为此错误可能与 java 依赖有关,因此 DockerFile 的第一行更改为 FROM java:8-jdk-alpine RUN set -ex && \ apk upgrade --update && \ . That did not help... apk add --update nodejs 尝试将npm install 更改为yarn install,看看是否有帮助。还要记住.:/usr/src/galen 卷映射将覆盖您在 dockerfile 中安装的所有 node_modules 【参考方案1】:

你需要 Java 来运行 Galen,所以这应该可以工作

FROM java:8

ENV NVM_DIR /usr/local/nvm
ENV NODE_VERSION 6.11.4
ENV GALEN_VERSION 2.3.5

# Install nvm with node and npm
RUN curl https://raw.githubusercontent.com/creationix/nvm/v0.31.0/install.sh | bash \
    && . $NVM_DIR/nvm.sh \
    && nvm install $NODE_VERSION \
    && nvm alias default $NODE_VERSION \
    && nvm use default \
    && npm install -g galenframework-cli@$GALEN_VERSION

ENV NODE_PATH $NVM_DIR/v$NODE_VERSION/lib/node_modules
ENV PATH      $NVM_DIR/v$NODE_VERSION/bin:$PATH

【讨论】:

谢谢,成功了!现在我将尝试最小化图像......也许使用高山:P 你可能会遇到 node 和 alpine 的问题

以上是关于Dockerize 框架测试“执行失败”的主要内容,如果未能解决你的问题,请参考以下文章

Pytest框架

Python Unittest框架用例执行失败自动截图

手把手教你pytest测试框架—— 初识框架

Python测试框架pytest(16)运行上次失败用例查看与清除缓存cache自定义标记mark

pytest学习

python单元测试pytest