使用docker作为测试环境

时间:2018-02-07 14:41:07

标签: node.js docker

我对this提出了类似的问题,但略有不同,我也不知道该怎么做。

就像在接受的答案中说的那样,我知道我可以将命令传递给容器,但我的情况是这样的:

// Dockerfile

FROM node:8.9

LABEL maintainer="..."

ADD . /app

WORKDIR /app

RUN npm install --production

ARG PORT=10000

EXPOSE $PORT

CMD [ "npm", "start" ]

所以,我将仅生产依赖安装到容器中,这样我的容器更轻,但我无法在其中运行测试。

我是否需要另一个Dockerfile用于测试目的?

我认为这是一个棘手的解决方案。使用一个参数,但它看起来不是解决这个问题的好方法。解决方案是:

// docker-compose.yml

version: '3'
services:
  api:
    build:
      context: .
      args:
      - PROD='--production'
      - PORT
  apitest:
    build:
      context: .
      args:
      - PORT

并使用Dockerfile中的PROD var

// Dockerfile

FROM node:8.9

LABEL maintainer="..."

ADD . /app

WORKDIR /app

RUN npm install $PROD

ARG PORT=10000

EXPOSE $PORT

CMD [ "npm", "start" ]

这样,只会在 api 服务中安装生产依赖项。

就像我说的,这真的很棘手,所以,是否有一个"官员"或"推荐"我不知道的方法?也许使用Dockerfile.test?

0 个答案:

没有答案