用于进行一些流星单元测试的最小Docker镜像

时间:2017-09-29 04:37:44

标签: javascript docker meteor

我在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 ...

1 个答案:

答案 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上获得许可。