Вы можете написать новый файл Docker, выбрав maven:latest
в качестве базового образа.(Это означает, что есть все последние зависимости от изображений maven).Вы можете сослаться на эту ссылку , чтобы написать файл Docker.
Поскольку базовый образ maven: latest представляет собой файл образа Debian и файл Docker, содержащий Dockerfile с заголовком Chrome без заголовка,также образ Debian, поэтому все команды ОС одинаковы.Таким образом, вы можете написать файл Docker, как показано ниже, где базовый образ maven:latest
, а остальные такие же, как здесь .
FROM maven:latest
LABEL name="chrome-headless" \
maintainer="Justin Ribeiro <justin@justinribeiro.com>" \
version="2.0" \
description="Google Chrome Headless in a container"
# Install deps + add Chrome Stable + purge all the things
RUN apt-get update && apt-get install -y \
apt-transport-https \
ca-certificates \
curl \
gnupg \
--no-install-recommends \
&& curl -sSL https://dl.google.com/linux/linux_signing_key.pub | apt-key add - \
&& echo "deb https://dl.google.com/linux/chrome/deb/ stable main" > /etc/apt/sources.list.d/google-chrome.list \
&& apt-get update && apt-get install -y \
google-chrome-beta \
fontconfig \
fonts-ipafont-gothic \
fonts-wqy-zenhei \
fonts-thai-tlwg \
fonts-kacst \
fonts-symbola \
fonts-noto \
ttf-freefont \
--no-install-recommends \
&& apt-get purge --auto-remove -y curl gnupg \
&& rm -rf /var/lib/apt/lists/*
# Add Chrome as a user
RUN groupadd -r chrome && useradd -r -g chrome -G audio,video chrome \
&& mkdir -p /home/chrome && chown -R chrome:chrome /home/chrome \
&& mkdir -p /opt/google/chrome-beta && chown -R chrome:chrome /opt/google/chrome-beta
# Run Chrome non-privileged
USER chrome
# Expose port 9222
EXPOSE 9222
# Autorun chrome headless with no GPU
ENTRYPOINT [ "google-chrome" ]
CMD [ "--headless", "--disable-gpu", "--remote-debugging-address=0.0.0.0", "--remote-debugging-port=9222" ]
Я проверил это, и он работает нормально.Как только вы напишите Dockerfile
, вы можете собрать его, используя dokcer build .
из того же хранилища, что и Dockerfile.Затем вы можете отправить это в концентратор докеров или в свой собственный реестр, где ваш бегун gitlab может получить доступ к образу докера.Удостоверьтесь, что вы отметили образ докера по своему предпочтению в качестве примера, давайте подумаем, что это тег, и вы отправляете его в локальный репозиторий {your-docker-repo}/maven-with-chrome-headless:1.0.0
Затем используйте этот предыдущий тег в файле gitlab-ci.yml как image: {your-docker-repo}/maven-with-chrome-headless:1.0.0