Upgrade to Pro — share decks privately, control downloads, hide ads and more …

今日から使えるDocker

 今日から使えるDocker

社内勉強会用資料

Avatar for ljkimura

ljkimura

July 12, 2018

More Decks by ljkimura

Other Decks in Programming

Transcript

  1. FROM node:latest ENV NODE_ENV=production ENV HOST 0.0.0.0 RUN mkdir -p

    /app WORKDIR /app COPY package.json /app RUN yarn install --ignore-engines COPY . /app RUN yarn build EXPOSE 3000 docker build <Dockerfile path> ⬇ docker run <image名> yarn start
  2. FROM node:latest ENV NODE_ENV=production ENV HOST 0.0.0.0 RUN mkdir -p

    /app WORKDIR /app COPY package.json /app RUN yarn install --ignore-engines COPY . /app RUN yarn build EXPOSE 3000 FROM : レジストリにあるImage名を指定 (ここではDocker公式レジストリ) して、ダウンロードしたImageの 状態から作業を開始する ENV : 環境変数設定 RUN : Shellコマンド実行 WORKDIR : 永続的CD COPY : Host->Containerに ファイルをコピー EXPOSE : ポート開放
  3. FROM golang:1.10.1 WORKDIR /go/src/gitlab.keepdata.jp/keepdata/hub/medical/medical-link COPY . . COPY ./config /go/bin/medical-link/config

    COPY ./account /go/bin/medical-link/account RUN go get "github.com/golang/dep/cmd/dep" RUN dep ensure -v -vendor-only RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -a -installsuffix cgo -o medical-link RUN mv ./medical-link /go/bin/medical-link FROM busybox EXPOSE 9999 COPY --from=0 /go/bin/medical-link /bin/medical-link WORKDIR /bin/medical-link
  4. # golang 1.10.1が最初から入ったコンテナを Docker公式レジストリからダウンロード FROM golang:1.10.1 # gopath下にCD WORKDIR /go/src/gitlab.keepdata.jp/keepdata/hub/medical/medical-link

    # git cloneしたソース&設定ファイルをコピー COPY . . COPY ./config /go/bin/medical-link/config COPY ./account /go/bin/medical-link/account # depを使い、go getを一括で行う RUN go get "github.com/golang/dep/cmd/dep" RUN dep ensure -v -vendor-only # cgoを無効にし、クロスコンパイル RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -a -installsuffix cgo -o medical-link RUN mv ./medical-link /go/bin/medical-link
  5. # busyboxというLinuxのみが入ったコンテナを Docker公式レ ジストリからダウンロード FROM busybox # ポート9999開放 EXPOSE 9999

    # 0番目のコンテナ(go:1.10.1)の指定パスから現在 build中のコ ンテナにファイルをコピー COPY --from=0 /go/bin/medical-link /bin/medical-link # cd WORKDIR /bin/medical-link docker build <Dockerfile path> ⬇ docker run <image名> ./medical-link -conf=config.json.local -inport=indexerPort.json.local
  6. • PHP ( + Apache) ◦ https://hub.docker.com/_/php/ • CentOS ◦

    https://hub.docker.com/_/centos/ • Redmine ◦ https://hub.docker.com/_/redmine/
  7. version: '3' services: php: build: ./docker/php/ ports: - "80:80" -

    "443:443" volumes: - ./docker/php/html:/var/www/html - ./docker/php/html/add-on/latest:/var/www /html/add-on/master extra_hosts: - "k317.keepdata.jp:127.0.0.1" depends_on: - go networks: - kdh_network go: container_name: go build: ./docker/go/ ports: - "9999:9999" command: - ./main networks: - kdh_network networks: kdh_network: docker-compose build ⬇ docker-compose up