我在docker容器中进行单元测试(对于我的CI工作流程) 。 因此,我使用nodeJS(4.x)和meteorJS(1.5)构建了一个基于ubuntu的图像。 我必须添加一个ubuntu用户,因为root用户会对meteor和 我必须设置语言环境来修复mongoDB的已知问题。
结果图像有2 GB !!!这对我来说难以置信。对于进行一些单元测试来说,这太过分了。
我还尝试使用阿尔卑斯版本(节点:4.8-alpine),但是我没有meteor test
运行
我在CI设置中运行单元测试的命令:
TEST_CLIENT=0 meteor test --once --driver-package dispatch:mocha --allow-superuser
这是我正在使用的Dockerfile:
FROM ubuntu:16.04
COPY package.json ./
RUN apt-get update -y && \
apt-get install -yqq \
python \
build-essential \
apt-transport-https \
ca-certificates \
curl \
locales \
nodejs \
npm \
nodejs-legacy \
sudo \
git && \
rm -rf /var/lib/apt/lists/*
## NodeJS and MeteorJS
RUN curl -sL https://deb.nodesource.com/setup_4.x | bash -
RUN curl https://install.meteor.com/ | sh
## Dependencies
RUN npm install -g eslint eslint-plugin-react
RUN npm install -g standard
RUN npm install
## Locale
ENV OS_LOCALE="en_US.UTF-8"
RUN locale-gen ${OS_LOCALE}
ENV LANG=${OS_LOCALE} LANGUAGE=en_US:en LC_ALL=${OS_LOCALE}
## User
RUN useradd ubuntu && \
usermod -aG sudo ubuntu && \
mkdir -p /builds/project/testing/.meteor /home/ubuntu && \
chown -Rh ubuntu:ubuntu /builds/project/testing/.meteor && \
chown -Rh ubuntu:ubuntu /home/ubuntu
USER ubuntu
## Initialize meteor
RUN cd /builds/project/testing/ && meteor update --release 1.5
也许有人知道如何优化这个Dockerfile ...
答案 0 :(得分:0)
如果您不喜欢自己的服务器版本,请随时查看我的操作方式:https://hub.docker.com/r/simonsimcity/bitbucket-meteor/tags
我的矿山约为300MB-我认为也可以进行改进。
我在上面建立了另一个docker镜像,您可以在不更改Bitbucket的情况下使用它,在其中可以在Firefox和Chrome中进行UI测试:https://hub.docker.com/r/simonsimcity/bitbucket-meteor-headless-browsers
您可以根据需要随意扩展此想法,该想法已在MIT上获得许可。