命令在docker中手动成功,但不是通过bash脚本成功 导言
我目前正在尝试构建一个包含所有节点项目依赖项的docker映像,以便可以使用它在Bitbucket管道上运行测试 我之所以决定创建映像,是因为我想控制依赖项的版本,并控制相应的升级时间 实施 使用以下dockerfile构建映像后:命令在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
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 &