#docker #kubernetes #container #orchestrator #microservice #infrastructure-as-code #devops #ci #cd

제목[Q&A] 도커 컴포즈로 도커파일 빌드하기2019-12-12 21:24
작성자

<docker-compse.yml>

version: "3" services: echo: image: example/echo:latest ports: - 9000:8080

* version 3

: 문법 버전 선언

* services

: 실행될 컨테이너를 정의. 여러개가 올 수 있으며 위의 보기에선 echo라는 이름을 가진 서비스(컨테이너)가 적용돼있음

* image

: 실행될 컨테이너의 베이스 이미지

ex2) 이미지 buil하고 compose하기

하나의 디렉토리 안에 다음 세 파일을 같이 넣는다

<docker-compse.yml>

version: "3" services: echo: build: . ports: - 9000:8080

<Dockerfile>

FROM golang:1.9 RUN mkdir /echo COPY main.go /echo CMD ["go", "run", "/echo/main.go"]

<main.go>

package main import ( "fmt" "log" "net/http" ) func main() { http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { log.Println("received request") fmt.Fprintf(w, "Hello Docker!!") }) log.Println("start server") server := &http.Server{Addr: ":8080"} if err := server.ListenAndServe(); err != nil { log.Println(err) } }

이후 도커에서 다음을 실행하면 docker-compse 속 build 명령이 Dockerfile을 이용해 이미지를 빌드한다.

$ docker-compose up -d --build
댓글