我已经对两项服务进行了任务整理:
以下是后端的简化版本dockerfile:
FROM private/node:v10.22.1
# Dependencies needed for backend (removed for simplicity)
RUN apt-get update
RUN apt-get install -y ...
USER root:root
COPY ./backend /node/backend
WORKDIR /node/backend
RUN npm install --unsafe
CMD npm start
EXPOSE 8011
它们用sock.io
相互通信。
后端有两种运行提取的模式(headless和headful)。无头提取成功地与这些dockerized服务一起工作。
在本地运行后端时,令人头痛的提取会弹出包含正在处理的页面的web浏览器。当在dockerized后端上启用headful提取时,由于容器没有GUI,它会失败。
为了修复后端上的头部提取,我修改了下面的docker文件:
FROM private/node:v10.22.1
# Dependencies needed for backend (removed for simplicity)
RUN apt-get update
RUN apt-get install -y ...
# Adding dependecies that are needed to create fake display in container
RUN apt-get update &&\
apt-get install -yq gconf-service libasound2 libatk1.0-0 libc6 libcairo2 libcups2 libdbus-1-3 \
libexpat1 libfontconfig1 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 \
libpango-1.0-0 libpangocairo-1.0-0 libstdc++++++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 \
libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 \
ca-certificates fonts-liberation libappindicator1 libnss3 lsb-release xdg-utils wget \
xvfb x11vnc x11-xkb-utils xfonts-100dpi xfonts-75dpi xfonts-scalable xfonts-cyrillic x11-apps
USER root:root
COPY ./backend /node/backend
WORKDIR /node/backend
RUN npm install --unsafe
# Creating display
ENV DISPLAY :99
# CMD npm start
CMD Xvfb :99 -screen 0 1024x768x16 & npm start
EXPOSE 8011
我正在运行两个容器,没有网络隔离,如下所示:
docker run --network host web
docker run --network host --env="DISPLAY" backend
在这些更改之后,头部提取成功,但浏览器窗口不会弹出。
你好,兰多。
附言
我试图实现运行网络浏览器的图形用户界面,它是在主机的容器内启动的,主机是Windows。我需要知道,如果容器是Linux,主机是Windows,并且网络隔离(< code>net=host)的移除是不可能的,是否有可能实现这一点。
关于如何将vnc转换为运行xvfb的docker容器的分步指南。
正如文档中所说,如果我想在docker中运行测试容器,我必须考虑以下几点: null
TL;DR:我可以配置一个容器来访问本机VGA,覆盖主机视频输出吗? 我正在考虑处理我的低功耗XenServer(以前是ESXi)白箱来设置一个docker最小安装(例如CoreOS、RancherOs或类似的发行版)。是否可以给一个(可能不是特权)容器对视频输出的独占访问/通过,安装一个可以与所有其他容器一起运行的媒体中心解决方案(例如Kodi),将全屏视频输出到电视,“显然”带有硬件加速视频解
问题内容: Docker容器可以通过哪个IP地址连接到Windows版Docker(在Windows 10上)上的主机?您如何找到此IP地址? 例如:您有一个服务在Windows 10计算机上的端口1234上运行。容器中的程序必须访问此服务。程序应使用哪个IP地址连接到主机? 问题答案: 简短的回答 :在大多数情况下,您需要 10.0.75.1 。 在适用于Windows的Docker中,容器通过
我遵循的https://app.pluralsight.com/library/courses/docker-web-development/table-of-contents使用旧的微软/aspnetcore-构建镜像,但我运行核心2.1,所以我使用微软/dotnet: 2.1-sdk代替。 我正在运行的命令是: docker run-it-p8080:5001-v${pwd}:/app-w“/
问题内容: 我看到很多人都在为此苦苦挣扎,好像在redis容器映像中可能有一个错误,而其他人似乎在追寻类似的问题。 我在DockerHub上使用标准Redis映像。(https://github.com/dockerfile/redis) 像这样运行它: 进入服务器后,就可以启动服务器,并从容器映像进行Redis ping了。 不幸的是,我无法从主机连接到Redis容器。 我已经尝试设置,例如下面
我在用“docker外面的docker”和jenkins运行一个容器。我的docker是: 所以所有从“jenkins容器”启动的容器都在主机中运行。 但是,当我试图在需要卷的作业中运行“jenkins容器”中的docker compose时,它采用的是来自主机的路径,而不是jenkins的路径。我是说,当我和docker合作时 它安装在主机的/var/jenkins_home/workspace