October 18, 2021

Working with Docker on GCP

Trong bài này chúng ta sẽ thực hiện một số thao tác cơ bản với Docker như build, push, pull, run trên GCP.

Trước tiên chúng ta cần open Cloud Shell.

Chúng ta sẽ được cửa sổ làm việc như dưới:

Clone project spring-boot như bên dưới:

git clone https://github.com/spring-guides/gs-spring-boot.git

Điều hướng đến …

cd gs-spring-boot/initial/

Sử dụng maven để build project:

mvn clean package

Trở về home directory và tạo Dockerfile:

touch Dockerfile

Dockerfile sẽ có nội dung như bên dưới:

FROM openjdk:8-jdk-alpine
 VOLUME /tmp
 EXPOSE 8080
 ARG JAR_FILE=gs-spring-boot/initial/target/gs-spring-boot-0.1.0.jar
 COPY ${JAR_FILE} app.jar
 ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

Build a docker image:

docker build -t springboot:0.1 .

nó là footer mà 

Get the project ID:

gcloud config list project

Thực hiện tag image với registry name theo format: [hostname]/[project-id]/[image]:[tag]
+ [hostname]: gcr.io
+ [project-id]: Project ID đã get ở trên

docker tag springboot:0.1 gcr.io/cavn-demopj/spring-boot:0.1

Push image to Google Cloud Registry:

docker push gcr.io/cavn-demopj/spring-boot:0.1

Remove images at local:

docker rmi springboot:0.1 gcr.io/cavn-demopj/spring-boot:0.1 openjdk:8-jdk-alpine

Pull the image from Google Cloud Registry:

docker pull gcr.io/cavn-demopj/spring-boot:0.1
docker run -d -p 8090:8080 --name springboot gcr.io/cavn-demopj/spring-boot:0.1

Run docker:
Test:

curl localhost:8090