我正在尝试在docker映像的构建过程中启动chrome,以最终在docker映像构建期间为我的react项目运行端到端测试。
我只想知道这是否可能?我发现了无数示例,这些示例显示了如何创建chrome的docker映像,但是在构建过程本身无法启动chrome。
我在dockerfile中下载了node,npm,chromedriver和google chrome。我在尝试构建它时遇到的错误是:
Starting ChromeDriver on port 9515...
Error: ChromeDriver process exited with code: 126
/src/src/e2e/etc/bin/chromedriver: /src/src/e2e/etc/bin/chromedriver: cannot execute binary file
我不确定自己在做什么错。我的e2e测试在本地运行得很好,所以我不确定这里缺少什么。
这是我的Dockerfile
:
FROM selenium/standalone-chrome:latest
USER root
# replace shell with bash so we can source files
RUN rm /bin/sh && ln -s /bin/bash /bin/sh
RUN ls
RUN apt-get update -qq
RUN apt-get install -y -qq wget xvfb unzip curl
# nvm environment variables
ENV NVM_DIR /usr/local/nvm
ENV NODE_VERSION 8.9.4
# install nvm
# https://github.com/creationix/nvm#install-script
RUN curl --silent -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.5/install.sh | bash
# install node and npm
RUN source $NVM_DIR/nvm.sh \
&& nvm install $NODE_VERSION \
&& nvm alias default $NODE_VERSION \
&& nvm use default
# add node and npm to path so the commands are available
ENV NODE_PATH $NVM_DIR/v$NODE_VERSION/lib/node_modules
ENV PATH $NVM_DIR/versions/node/v$NODE_VERSION/bin:$PATH
# confirm installation
RUN node -v
RUN npm -v
COPY . /src
WORKDIR /src/src
RUN npm install \
&& npm rebuild node-sass --force \
&& npm run test \
&& npm run build \