Docker로 Puppeteer를합시다.
6587 단어 dockerfile도커puppeteer
하지만 곧 잊을 것 같아서 메모 남겨 둡니다.
내 사용 환경은 Mac입니다.
Docker를 Mac에 설치
공식 사이트에서 Docker for Mac을 설치합니다.
htps // // 후 b. 두 c r. 코 m / 에이 치온 s / 콧물에 ty / 도 c 케 루세로 sk와 p 마 c
파란색 [Get Docker]라는 버튼을 누르면 Dockerhub의 SignUp을 묻습니다.
따로 DockerHub는 사용할 예정 없었기 때문에 ID 만들고 싶지 않았습니다만, 회피 방법을 찾을 수 없고 SignUp 했습니다.
말하는대로 계속 진행하면 설치하고 시작할 수 있습니다.
설치의 확인은, 정평의 version 확인을 실시했습니다.
mbp:~ kuniatsu$ docker version
Client: Docker Engine - Community
Version: 18.09.0
API version: 1.39
Go version: go1.10.4
Git commit: 4d60db4
Built: Wed Nov 7 00:47:43 2018
OS/Arch: darwin/amd64
Experimental: false
Server: Docker Engine - Community
Engine:
Version: 18.09.0
API version: 1.39 (minimum version 1.12)
Go version: go1.10.4
Git commit: 4d60db4
Built: Wed Nov 7 00:55:00 2018
OS/Arch: linux/amd64
Experimental: false
mbp:~ kuniatsu$
환경에 들어가 작업
Docker는 제공된 이미지를 빌드하여 컨테이너를 만듭니다.
처음 무슨 말을 하는지 자신도 처음에는 무슨 말을 하는지 전혀 몰랐습니다만, 하고 있을 때에 적당히 잡았습니다.
이상하면 돌진할 것 같지만,
・Docker의 image는 프로그램으로 말하는 곳의 class
・Docker의container는 프로그램으로 말하는 곳의 instance
같은 이미지입니다. (그렇다고 생각합니다)
$ docker pull node:8.4
index (Docker의 공식)에서 node.js의 version8.4의 image를 DL한다.
$ docker images
image의 일람을 표시(DL했으므로 node가 추가되고 있다)
$ docker pull node:8.4
8.4: Pulling from library/node
aa18ad1a0d33: Pull complete
90f6d19ae388: Pull complete
94273a890192: Pull complete
c9110c904324: Pull complete
788d73c0fb6b: Pull complete
f221bb562f24: Pull complete
14414a6a768d: Pull complete
af6d2b2ad991: Pull complete
Digest: sha256:080488acfe59bae32331ce28373b752f3f848be8b76c2c2d8fdce28205336504
Status: Downloaded newer image for node:8.4
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
node 8.4 386940f92d24 16 months ago 673MB
$ sudo docker run -i -t node /bin/bash
-i ··· 인터랙티브 모드
-t ···컨테이너 안에서 터미널을 시작한다.
이미지에서 컨테이너를 만들고 bash로 조작합니다.
$ docker ps -a
만들어진 컨테이너를 확인합니다.
$ docker exec -i -t [container_id] /bin/bash
다시 컨테이너를 bash로 조작
(container_id는 $ docker ps -a로 확인)
$docker rm [container_id]
container 삭제
(container_id는 $ docker ps -a로 확인)
$ docker rmi image_id
이미지 삭제
(image_id는 $ docker images로 확인)
Puppeteer 설치
root@999999e9bb99:/# apt-get update
apt 업데이트
root@999999e9bb99:/# apt-get install -y 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 fonts-noto-cjk
Puppeteer에 필요한 라이브러리 설치
root@999999e9bb99:/# npm install puppeteer
npm에서 puppeteer 설치
사용하고 있는 image가 node가 아닌 사람은, node를 인스톨 해 주세요.root@999999e9bb99:/# apt-get install -y nodejs npm
Dockerfile 만들기
방금 image는 class와 같은 것이라고 생각하고 있다고 썼습니다만,
Dockerfile을 만들어 오버라이드할 수 있는 이미지입니다.
Dockerfile에 여기까지 온 절차를 기재하면,
Dockerfile을 build하고 image에서 container를 만들면 절차 불필요합니다.
데비안계
mbp:dockers kuniatsu$ cat Dockerfile
FROM node:8.4
MAINTAINER kuniatsu
# 日本語文字化け対策
RUN echo 'deb http://ftp.jp.debian.org/debian jessie-backports main' >> /etc/apt/sources.list
#puppeteerに必要なlibrary
RUN set -ex; \
apt-get update; \
apt-get install -y --no-install-recommends \
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 \
fonts-noto-cjk \
vim
RUN npm install puppeteer
CMD ["echo","now runing..."]
Red Hat 계열
나중에 AWS에서 사용하게 되었기 때문에, Red Hat계도 참고에 실어 둡니다.
mbp:dockers kuniatsu$ cat Dockerfile
FROM amazonlinux
MAINTAINER kuniatsu
RUN echo "now building..."
RUN curl --silent --location https://rpm.nodesource.com/setup_8.x | bash -
RUN set -ex; \
yum -y update; \
yum -y install \
vim \
nodejs \
libX11 \
libXcomposite \
libXcursor \
libXdamage \
libXext \
libXi \
libXtst \
cups-libs \
libXScrnSaver \
libXrandr \
alsa-lib \
pango \
atk \
at-spi2-atk \
gtk3
RUN node -v
RUN npm install puppeteer
CMD ["echo","now runing..."]
$ docker build -t [name] .
Dockerfile을 이미지로 만들기
$ sudo docker run -i -t name /bin/bash
후에는 image와 같은 사용법.
Reference
이 문제에 관하여(Docker로 Puppeteer를합시다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kuniatsu/items/cb7dbdac205a7d30a4d5
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
mbp:~ kuniatsu$ docker version
Client: Docker Engine - Community
Version: 18.09.0
API version: 1.39
Go version: go1.10.4
Git commit: 4d60db4
Built: Wed Nov 7 00:47:43 2018
OS/Arch: darwin/amd64
Experimental: false
Server: Docker Engine - Community
Engine:
Version: 18.09.0
API version: 1.39 (minimum version 1.12)
Go version: go1.10.4
Git commit: 4d60db4
Built: Wed Nov 7 00:55:00 2018
OS/Arch: linux/amd64
Experimental: false
mbp:~ kuniatsu$
Docker는 제공된 이미지를 빌드하여 컨테이너를 만듭니다.
처음 무슨 말을 하는지 자신도 처음에는 무슨 말을 하는지 전혀 몰랐습니다만, 하고 있을 때에 적당히 잡았습니다.
이상하면 돌진할 것 같지만,
・Docker의 image는 프로그램으로 말하는 곳의 class
・Docker의container는 프로그램으로 말하는 곳의 instance
같은 이미지입니다. (그렇다고 생각합니다)
$ docker pull node:8.4
index (Docker의 공식)에서 node.js의 version8.4의 image를 DL한다.
$ docker images
image의 일람을 표시(DL했으므로 node가 추가되고 있다)$ docker pull node:8.4
8.4: Pulling from library/node
aa18ad1a0d33: Pull complete
90f6d19ae388: Pull complete
94273a890192: Pull complete
c9110c904324: Pull complete
788d73c0fb6b: Pull complete
f221bb562f24: Pull complete
14414a6a768d: Pull complete
af6d2b2ad991: Pull complete
Digest: sha256:080488acfe59bae32331ce28373b752f3f848be8b76c2c2d8fdce28205336504
Status: Downloaded newer image for node:8.4
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
node 8.4 386940f92d24 16 months ago 673MB
$ sudo docker run -i -t node /bin/bash
-i ··· 인터랙티브 모드-t ···컨테이너 안에서 터미널을 시작한다.
이미지에서 컨테이너를 만들고 bash로 조작합니다.
$ docker ps -a
만들어진 컨테이너를 확인합니다.$ docker exec -i -t [container_id] /bin/bash
다시 컨테이너를 bash로 조작(container_id는 $ docker ps -a로 확인)
$docker rm [container_id]
container 삭제(container_id는 $ docker ps -a로 확인)
$ docker rmi image_id
이미지 삭제(image_id는 $ docker images로 확인)
Puppeteer 설치
root@999999e9bb99:/# apt-get update
apt 업데이트
root@999999e9bb99:/# apt-get install -y 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 fonts-noto-cjk
Puppeteer에 필요한 라이브러리 설치
root@999999e9bb99:/# npm install puppeteer
npm에서 puppeteer 설치
사용하고 있는 image가 node가 아닌 사람은, node를 인스톨 해 주세요.root@999999e9bb99:/# apt-get install -y nodejs npm
Dockerfile 만들기
방금 image는 class와 같은 것이라고 생각하고 있다고 썼습니다만,
Dockerfile을 만들어 오버라이드할 수 있는 이미지입니다.
Dockerfile에 여기까지 온 절차를 기재하면,
Dockerfile을 build하고 image에서 container를 만들면 절차 불필요합니다.
데비안계
mbp:dockers kuniatsu$ cat Dockerfile
FROM node:8.4
MAINTAINER kuniatsu
# 日本語文字化け対策
RUN echo 'deb http://ftp.jp.debian.org/debian jessie-backports main' >> /etc/apt/sources.list
#puppeteerに必要なlibrary
RUN set -ex; \
apt-get update; \
apt-get install -y --no-install-recommends \
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 \
fonts-noto-cjk \
vim
RUN npm install puppeteer
CMD ["echo","now runing..."]
Red Hat 계열
나중에 AWS에서 사용하게 되었기 때문에, Red Hat계도 참고에 실어 둡니다.
mbp:dockers kuniatsu$ cat Dockerfile
FROM amazonlinux
MAINTAINER kuniatsu
RUN echo "now building..."
RUN curl --silent --location https://rpm.nodesource.com/setup_8.x | bash -
RUN set -ex; \
yum -y update; \
yum -y install \
vim \
nodejs \
libX11 \
libXcomposite \
libXcursor \
libXdamage \
libXext \
libXi \
libXtst \
cups-libs \
libXScrnSaver \
libXrandr \
alsa-lib \
pango \
atk \
at-spi2-atk \
gtk3
RUN node -v
RUN npm install puppeteer
CMD ["echo","now runing..."]
$ docker build -t [name] .
Dockerfile을 이미지로 만들기
$ sudo docker run -i -t name /bin/bash
후에는 image와 같은 사용법.
Reference
이 문제에 관하여(Docker로 Puppeteer를합시다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kuniatsu/items/cb7dbdac205a7d30a4d5
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
root@999999e9bb99:/# apt-get update
root@999999e9bb99:/# apt-get install -y 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 fonts-noto-cjk
root@999999e9bb99:/# npm install puppeteer
방금 image는 class와 같은 것이라고 생각하고 있다고 썼습니다만,
Dockerfile을 만들어 오버라이드할 수 있는 이미지입니다.
Dockerfile에 여기까지 온 절차를 기재하면,
Dockerfile을 build하고 image에서 container를 만들면 절차 불필요합니다.
데비안계
mbp:dockers kuniatsu$ cat Dockerfile
FROM node:8.4
MAINTAINER kuniatsu
# 日本語文字化け対策
RUN echo 'deb http://ftp.jp.debian.org/debian jessie-backports main' >> /etc/apt/sources.list
#puppeteerに必要なlibrary
RUN set -ex; \
apt-get update; \
apt-get install -y --no-install-recommends \
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 \
fonts-noto-cjk \
vim
RUN npm install puppeteer
CMD ["echo","now runing..."]
Red Hat 계열
나중에 AWS에서 사용하게 되었기 때문에, Red Hat계도 참고에 실어 둡니다.
mbp:dockers kuniatsu$ cat Dockerfile
FROM amazonlinux
MAINTAINER kuniatsu
RUN echo "now building..."
RUN curl --silent --location https://rpm.nodesource.com/setup_8.x | bash -
RUN set -ex; \
yum -y update; \
yum -y install \
vim \
nodejs \
libX11 \
libXcomposite \
libXcursor \
libXdamage \
libXext \
libXi \
libXtst \
cups-libs \
libXScrnSaver \
libXrandr \
alsa-lib \
pango \
atk \
at-spi2-atk \
gtk3
RUN node -v
RUN npm install puppeteer
CMD ["echo","now runing..."]
$ docker build -t [name] .
Dockerfile을 이미지로 만들기$ sudo docker run -i -t name /bin/bash
후에는 image와 같은 사용법.
Reference
이 문제에 관하여(Docker로 Puppeteer를합시다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kuniatsu/items/cb7dbdac205a7d30a4d5텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)