命令在docker中手动成功,但不是通过bash脚本成功 导言

命令在docker中手动成功,但不是通过bash脚本成功 导言,bash,docker,selenium,selenium-webdriver,dockerfile,Bash,Docker,Selenium,Selenium Webdriver,Dockerfile,我目前正在尝试构建一个包含所有节点项目依赖项的docker映像,以便可以使用它在Bitbucket管道上运行测试 我之所以决定创建映像,是因为我想控制依赖项的版本,并控制相应的升级时间 实施 使用以下dockerfile构建映像后: FROM selenium/standalone-chrome-debug LABEL name="nodejs-chrome-java" USER root # Install Java 8 RUN set -x \ &&a

我目前正在尝试构建一个包含所有节点项目依赖项的docker映像,以便可以使用它在Bitbucket管道上运行测试

我之所以决定创建映像,是因为我想控制依赖项的版本,并控制相应的升级时间

实施 使用以下dockerfile构建映像后:

FROM selenium/standalone-chrome-debug
LABEL name="nodejs-chrome-java"

USER root

# Install Java 8
RUN set -x \
    && apt-get update \
    && apt-get install -y \
        ca-certificates-java \
        openjdk-8-jre-headless \
        openjdk-8-jre \
        openjdk-8-jdk-headless \
        openjdk-8-jdk \
    && apt-get clean

ENV JAVA_HOME /usr/lib/jvm/java-8-openjdk-amd64/
RUN export JAVA_HOME

# Install node 10 and npm
RUN set -x \
    && curl -sL https://deb.nodesource.com/setup_14.x | bash - \
    && apt-get update \
    && apt-get install -y nodejs \
    && npm install -g npm@latest \
    && apt-get clean

# Make node available
RUN set -x \
    && touch ~/.bashrc \
    && echo 'alias nodejs=node' > ~/.bashrc

# Install PhantomJS
RUN set -x \
    && apt-get update \
    && apt-get install -y \
        phantomjs \
    && apt-get clean

# Set PhantomJS to run headless
ENV QT_QPA_PLATFORM offscreen

RUN mkdir /logs
RUN touch /logs/selenium.log
我使用以下命令执行docker映像:

docker run -it --entrypoint /bin/bash -v /my/project:/project -w /project <DOCKER_IMAGE_ID>
/opt/bin/start-selenium-standalone.sh
这将产生以下输出:

22:14:13.034 INFO [GridLauncherV3.parse] - Selenium server version: 3.141.59, revision: e82be7d358
22:14:13.304 INFO [GridLauncherV3.lambda$buildLaunchers$3] - Launching a standalone Selenium Server on port 4444
2020-06-29 22:14:13.466:INFO::main: Logging initialized @1128ms to org.seleniumhq.jetty9.util.log.StdErrLog
22:14:14.228 INFO [WebDriverServlet.<init>] - Initialising WebDriverServlet
22:14:14.547 INFO [SeleniumServer.boot] - Selenium Server is up and running on port 4444

在创建docker映像时,它确实将与前面所述相同的内容输出到我定义的日志文件(
/logs/selenium.log
)中。那么,到目前为止,在bash脚本中,selenium服务器已经成功启动了吗?bash脚本是否在特定行抛出任何错误?如果没有,您可能希望在文件的开头添加“set-e”以获得更好的效果debugging@AldoSuwandi,我从selenium获得的错误输出是名为
问题
部分下日志的第一个摘录。
/opt/bin/start-selenium-standalone.sh > /logs/selenium.log 2>&1 &