1
的第一部作品,我们有一个码头工人的网络,像这样:泊坞窗网络不使用bash入口点
docker network create cdt-net
然后,我有这样的bash脚本,将启动硒服务器:
cd $(dirname "$0")
./node_modules/.bin/webdriver-manager update
./node_modules/.bin/webdriver-manager start
以上bash脚本是由该Dockerfile叫:
FROM openjdk:latest
RUN apt-get update && \
apt-get -y install sudo
RUN mkdir -p /root/cdt-webdriver
WORKDIR /root/cdt-webdriver
COPY start-selenium-server.sh .
ENTRYPOINT ["/bin/bash", "/root/cdt-webdriver/start-selenium-server.sh"]
我将建立它像这样:
docker build -t cdt-selenium .
,然后像这样运行:
docker run --network=cdt-net --name cdt-selenium -d cdt-selenium
是我遇到的问题是,即使一切都是干净的,没有错误,同样多克尔网络中的其他进程无法倾诉的硒服务器。
在另一方面,如果我使用一个预先存在的图像,像这样创建硒服务器:
docker run -d --network=cdt-net --name cdt-selenium selenium/standalone-firefox:3.4.0-chromium
那么事情是否按预期工作,我可以连接到其他进程的硒服务器在Docker网络中。
任何人都知道我的bash脚本或Dockerfile可能有问题吗?也许我手动创建的Selenium服务器没有在正确的主机上侦听?
下面是完整的Dockerfile供参考:
FROM openjdk:latest
RUN apt-get update && \
apt-get -y install sudo
RUN sudo apt-get install -y curl
RUN sudo apt-get install -y apt-utils
RUN sudo apt-get -y update
RUN sudo apt-get -y upgrade
RUN sudo apt-get purge nodejs npm
RUN curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
RUN sudo apt-get install -y nodejs
RUN echo "before nodejs => $(which nodejs)"
RUN echo "before npm => $(which npm)"
RUN sudo ln -s `which nodejs` /usr/bin/node || echo "ignore error"
RUN mkdir -p /root/cdt-webdriver
WORKDIR /root/cdt-webdriver
COPY start-selenium-server.sh .
RUN rm -rf node_modules > /dev/null 2>&1
RUN npm init -f || echo "ignore non-zero exit code" > /dev/null 2>&1
RUN npm install webdriver-manager > /dev/null 2>&1
ENTRYPOINT ["/bin/bash", "/root/cdt-webdriver/start-selenium-server.sh"]
我没有选项'-d':'docker run --network = cdt-net --name cdt-selenium cdt-selenium'输出: '/root/cdt-webdriver/start-selenium-server.sh:line 2:./node_modules/.bin/webdriver-manager:No such file or directory' and '/ root/cdt-webdriver/start-selenium -server.sh:第3行:./node_modules/.bin/webdriver-manager:没有这样的文件或目录# – Cyrus
是啊对不起,我从Dockerfile中删除了一些简单的行,只是为了让人们得到要点,我会粘贴原始问题中的完整Dockerfile。 –
启动后,“docker logs cdt-selenium”和“docker ps -f name = cdt-selenium”报告是什么?或者当你在前台运行容器时会发生什么,没有'-d'? – Matt