도커라이징 - devkimchi/Dockerised-Azure-Functions-in-AppVeyor-CI-CD-Pipeline GitHub Wiki
시작 전 준비물 확인
Dockerfile
작성
Dockerfile
을 생성합니다.
git checkout step-02
빈 Dockerfile
에 아래와 같이 입력합니다.
# Get .NET SDK image
FROM microsoft/dotnet:2.1-sdk AS builder
RUN mkdir /functions
COPY . /functions
WORKDIR /functions
RUN dotnet build . -o output
# Get Azure Function runtime image
FROM microsoft/azure-functions-dotnet-core2.0:latest AS runtime
ENV AzureWebJobsScriptRoot=/home/site/wwwroot
COPY --from=builder /functions/output /home/site/wwwroot
도커 커스텀 이미지 빌드 및 실행
아래 명령어를 통해 커스텀 도커 이미지를 생성합니다.
docker build . -t function_app
만들어진 커스텀 도커 이미지가 잘 작동하는지 확인합니다.
docker run -it -p 8000:80 --name [컨테이너 이름] function_app
웹브라우저를 통해 http://localhost:8000/api/test?name=[아무거나]
를 입력하고 결과를 확인합니다.
잘 돌아가는지 확인이 끝난 후에는 아래 명령어를 통해 컨테이너를 삭제합니다.
docker rm -f [컨테이너 이름]
도커 허브 배포, 다운로드 및 실행
도커 허브 배포를 위해 형식에 맞게 태깅합니다.
docker tag function_app [계정명]/function_app
도커 허브에 로그인합니다.
docker login -u [계정명] -p [패스워드]
도커 허브에 방금 태깅한 이미지를 배포합니다.
docker push [계정명]/function_app
기존에 로컬에 만들어 두었던 커스텀 이미지는 삭제합니다.
docker rmi -f function_app [계정명]/function_app
도커 허브에 올라간 이미지를 직접 이용해서 컨테이너를 생성합니다.
docker run -it -p 8888:80 --name [컨테이너 이름] [계정명]/function_app
웹브라우저를 통해 http://localhost:8888/api/test?name=[아무거나]
를 입력하고 결과를 확인합니다.
잘 돌아가는지 확인이 끝난 후에는 아래 명령어를 통해 컨테이너를 삭제합니다.
docker rmi -f [컨테이너 이름]