【发布时间】:2019-09-19 07:26:31
【问题描述】:
我有一个用 NodeJS 编写的应用程序,我想定期测试它,最好是在一个隔离的 Docker 容器中。
我一直在关注这里的教程:Testing a Node.JS Application Within a Docker Container。它演示的一件事是如何在 Docker 容器中运行测试,以及如何设置 Dockerfile。例如:
# This official base image contains node.js and npm
FROM node:7
ARG VERSION=1.0.0
# Copy the application files
WORKDIR /usr/src/app
COPY package.json app.js LICENSE /usr/src/app/
COPY lib /usr/src/app/lib/
LABEL license=MIT \
version=$VERSION
# Set required environment variables
ENV NODE_ENV production
# Download the required packages for production
RUN npm update
# Make the application run when running the container
CMD ["node", "app.js"]
由于我的应用程序使用 MongoDB,我需要一个正在运行的 MongoDB 实例来正确测试我的应用程序。我想在 Docker 容器中包含 MongoDB。
我找不到任何关于如何执行此操作的说明(或更一般地说,如何将任何数据库添加到容器中)。任何提示将不胜感激
【问题讨论】:
-
你可能需要
multi-stage buildsdocs.docker.com/develop/develop-images/multistage-build blog.alexellis.io/mutli-stage-docker-builds 或者更好地将mongo作为另一个容器运行,挂载卷(可选),暴露端口并调用它 -
最佳实践是在单独的容器中运行数据库,以使您的应用映像与数据库设置无关。使用 docker-compose 或任何其他编排工具启动应用程序和数据库容器以正确测试您的应用程序。
标签: node.js mongodb docker dockerfile