使用DockerFile创建Selenoid镜像

roqulrg3  于 2023-11-17  发布在  Docker
关注(0)|答案(3)|浏览(120)

我需要发布一个包含https://aerokube.com/selenoid的Dockerfile。
这必须是一个Dockerfile,这样我就可以将其发布到我们的容器注册表,该注册表将作为管道/文本执行https://learn.microsoft.com/en-us/azure/devops/pipelines/process/service-containers?view=azure-devops&tabs=yaml的一部分用作服务容器
这是我的dockerfile

FROM alpine:3.14

# Update Package
RUN apk update

# Install Selenoid Configuration Manager
RUN wget -O /usr/bin/cm https://github.com/aerokube/cm/releases/download/1.8.5/cm_linux_amd64 \
    && chmod +x /usr/bin/cm

# create dir
RUN mkdir -p /etc/selenoid

# Copy browsers.json
COPY  browsers.json /etc/selenoid/browsers.json

EXPOSE 4444

CMD["/usr/bin/cm", "-conf", "/etc/selenoid/browsers.json"]

字符串
我的browsers.json文件与Dockerfile位于同一个目录。
在我的本地测试中,当我尝试运行容器时,

Error: unknown command "/etc/selenoid/browsers.json" for "cm"
Run 'cm --help' for usage.


我还尝试将命令更新为

CMD ["/usr/bin/cm", "selenoid","start", "-conf", "/etc/selenoid/browsers.json"]


但错误更疯狂

Failed to initialize: [can not access Docker: make sure you have Docker installed and current user has access permissions]


将CMD更改为ENTRYPOINT的结果相同

nue99wik

nue99wik1#

不确定它是否拼写错误,但您在原始dockerfile中缺少空间。

CMD["/usr/bin/cm", "-conf", "/etc/selenoid/browsers.json"]

字符串
应该是:

CMD ["/usr/bin/cm", "-conf", "/etc/selenoid/browsers.json"]

kh212irz

kh212irz2#

错误unknown command "/etc/selenoid/browsers.json" for "cm"表明Dockerfile中的命令语法存在问题。无法正确识别命令参数。
确保CMD指令被正确格式化为JSON数组。

CMD ["/usr/bin/cm", "selenoid", "start", "-conf", "/etc/selenoid/browsers.json"]

字符串
错误消息can not access Docker: make sure you have Docker installed and current user has access permissions表示Selenoid服务无法访问Docker。
尝试在容器中挂载Docker套接字。这可以通过在运行Docker容器时添加volume mount来完成。

docker run -v /var/run/docker.sock:/var/run/docker.sock your-image-name


最后,当您希望容器作为可执行文件运行时,建议使用ENTRYPOINT而不是CMD
修改后的Dockerfile将是:

FROM alpine:3.14

RUN apk update && \
    wget -O /usr/bin/cm https://github.com/aerokube/cm/releases/download/1.8.5/cm_linux_amd64 && \
    chmod +x /usr/bin/cm && \
    mkdir -p /etc/selenoid

COPY browsers.json /etc/selenoid/browsers.json

EXPOSE 4444

ENTRYPOINT ["/usr/bin/cm"]
CMD ["selenoid", "start", "-conf", "/etc/selenoid/browsers.json"]

sdnqo3pr

sdnqo3pr3#

你在做奇怪的事情。CM工具从来没有被期望在容器中发布。这就像一个setup.exe快速安装Selenoid。如何构建Docker镜像在这个文档部分中描述:https://aerokube.com/selenoid/latest/#_contributing_development简单地复制browsers.json作为/etc/selenoid/browsers.json后,从文档中执行步骤,并提供此路径到/usr/bin/selenoid命令使用-conf标志。原始Dockerfile是在这里发表:https://github.com/aerokube/selenoid/blob/master/Dockerfile

相关问题