2017-11-24 12 views
1

私は最後の2日間、クロッカーをインストールしてドッカーで稼働させようとしていました。最新のドッカー画像です。 (ドッカーのドッカー)。chromockuimとdocker official dind build(ドッカー:最新)

私が試してみました、複数のドッキングウィンドウのファイル:

from docker:latest 

RUN apk add --no-cache python py2-pip curl bash chromuim ttf-freefont xvfb nodejs nodejs-npm udev  
RUN curl -sSL https://sdk.cloud.google.com | bash 
ENV PATH $PATH:~/google-cloud-sdk/bin 

RUN pip install docker-compose 
RUN npm install -g @angular/cli swagger 
ENV CHROME_BIN=/usr/bin/chromium-browser 

ヘッドレスをサポートしていません。このインストールクロム57、。 だから、私はxvbfでこれを実行することができます疑いがあるが、このクロムを実行することで失敗します。

Failed to move to new namespace: PID namespaces supported, Network namespace supported, but failed: errno = Operation not permitted 
[8:8:1124/085514.600081:FATAL:zygote_host_impl_linux.cc(182)] Check failed: ReceiveFixedMessage(fds[0], kZygoteBootMessage, sizeof(kZygoteBootMessage), &boot_pid). 
Aborted (core dumped) 

だから私は(ヘッドレスをサポート)、クロム61をインストールしようとしました。 しかし、そのためにDockerfileを更新してedgeを使用する必要があります。 すぐにアップグレード/インストールしようとしました。私はいつもフォントが不足している。 私は1

from docker:latest 

RUN apk add --no-cache python py2-pip curl bash xvfb nodejs nodejs-npm udev  
RUN curl -sSL https://sdk.cloud.google.com | bash 
ENV PATH $PATH:~/google-cloud-sdk/bin 

RUN pip install docker-compose 
RUN npm install -g @angular/cli swagger 
ENV CHROME_BIN=/usr/bin/chromium-browser 

USER root 

RUN echo "http://dl-2.alpinelinux.org/alpine/edge/main" > /etc/apk/repositories 
RUN echo "http://dl-2.alpinelinux.org/alpine/edge/community" >> /etc/apk/repositories 
RUN echo "http://dl-2.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories 

#----------------- 
# Set ENV and change mode 
#----------------- 
ENV LIGHTHOUSE_CHROMIUM_PATH /usr/bin/chromium-browser 

ENV TZ "Europe/Berlin" 
ENV DEBIAN_FRONTEND noninteractive 
ENV DEBCONF_NONINTERACTIVE_SEEN true 
ENV SCREEN_WIDTH 750 
ENV SCREEN_HEIGHT 1334 
ENV SCREEN_DEPTH 24 
ENV DISPLAY :99.0 
ENV PATH /lighthouse/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin 

ENV GEOMETRY "$SCREEN_WIDTH""x""$SCREEN_HEIGHT""x""$SCREEN_DEPTH" 

RUN echo $TZ > /etc/timezone 

#----------------- 
# Add packages 
#----------------- 

RUN apk -U --no-cache update 
RUN apk -U --no-cache add \ 
    zlib-dev \ 
    chromium \ 
    freetype \ 
    ttf-opensans \ 
    xvfb \ 
    wait4ports \ 
    xorg-server \ 
    dbus \ 
    ttf-freefont \ 
    mesa-dri-swrast 


# Minimize size 

RUN apk del --purge --force curl make gcc g++ python linux-headers binutils-gold gnupg git zlib-dev apk-tools libc-utils 

RUN rm -rf /var/lib/apt/lists/* \ 
    /var/cache/apk/* \ 
    /usr/share/man \ 
    /tmp/* \ 
    /usr/lib/node_modules/npm/man \ 
    /usr/lib/node_modules/npm/doc \ 
    /usr/lib/node_modules/npm/html \ 
    /usr/lib/node_modules/npm/scripts 

VOLUME /lighthouse/output 

ADD xvfb-chromium.sh /chromium-xvfb.sh 
RUN chmod +x /chromium-xvfb.sh 

xvfb-chromium.sh(あなたはコンテナに実行/ binに/ bashのをドッカーできるようalthought、必要ではない)

#!/bin/sh 

_kill_procs() { 
    kill -TERM $chromium 
    wait $chromium 
    kill -TERM $xvfb 
} 

[email protected] 


# We need to test if /var/run/dbus exists, since script will fail if it does not 

[ ! -e /var/run/dbus ] && mkdir /var/run/dbus 

/usr/bin/dbus-daemon --system 

# Setup a trap to catch SIGTERM and relay it to child processes 
trap _kill_procs SIGTERM 

TMP_PROFILE_DIR=`mktemp -d -t chromium.XXXXXX` 
export CHROME_DEBUGGING_PORT=9222 

# Start Xvfb 
Xvfb ${DISPLAY} -ac +iglx -screen 0 ${GEOMETRY} -nolisten tcp & xvfb=$! 

printf "Starting xvfb window server..." 

while [ 1 -gt $xvfb ]; do printf "..."; sleep 1; done 

printf "xvfb started\n\n" 

#printf "Starting chromium, with debugger on port $CHROME_DEBUGGING_POST...\n\n" 

# --disable-webgl \ 

$CHROME_BIN \ 
--no-sandbox \ 
--user-data-dir=${TMP_PROFILE_DIR} \ 
--start-maximized \ 
--remote-debugging-port=${CHROME_DEBUGGING_PORT} \ 
--no-first-run "about:blank" & 

#chromium=$! 

#wait4ports tcp://127.0.0.1:$CHROME_DEBUGGING_PORT 

printf "\n\n==============================\nlaunching lighthouse run\n==============================\n\n" 

#wait $chromium 
wait $xvfb 

lighthose使用するように私のdockerfileを調整してしまった最も近いです次に、別のエラーが表示されます。

Error relocating /usr/lib/chromium/chrome: FT_Set_Default_Properties: symbol not found 

解決方法がわからない場合は、何か助けてください。

+0

あなたが提供してもらえクロム - xvfb.shのスクリプトも同様に – Farhan

+1

@ファハンは本当にインポートされていない、あなたはマシンに実行して実行しようとすることができますが、私は1分で質問に含める。 –

+0

私はちょうど私のサーバー上でこの問題を再現するつもりです。それは私がそのファイルを完全に機能させるために必要なのです。だから私は問題の根本原因を調べることができます – Farhan

答えて

-1

あなたは、安定した、またはベータ、または開発者のバージョンのいずれかをそれはクロムのチャンネルからグーグル・クロムのLinuxバージョンをダウンロードしhttps://github.com/c0b/chrome-in-docker このリンクを試みることができる、それがヘッドレスブラウザにGoogleのクロムをオン、

関連する問題