Day-03-Container

Create React App

是一個自動化建立一個簡單的 React 的工具

利用這個工具產生一個靜態的檔案

再利用 docker 打包成 Image

並且以 container 跑起來 可以利用網頁瀏覽器瀏覽

Initial React Project

1
2
3
4
$ npx create-react-app lke-example
$ cd lke-example
$ npm install
$ npm start

react-demo

Dockerfile

Dockerfile

1
2
3
4
5
6
7
8
9
10
11
12
13
FROM node:18.0-slim as Frontend

WORKDIR /app
COPY . /app

RUN npm install
RUN npm run build

FROM nginx:stable-alpine
RUN mv /usr/share/nginx/html/index.html /usr/share/nginx/html/old-index.html
COPY --from=Frontend /app/build/ /usr/share/nginx/html/

EXPOSE 80

昨天有解釋一些參數

今天又多了一些新的參數

FROM node:18.0-slim as Frontend

這一個 image 基於 node:18.0-slim 產生後命名為 Frontend

COPY --from=Frontend /app/build/ /usr/share/nginx/html/

Frontend 的 image 複製 /app/build/ 的檔案到 Nginx 的 /usr/share/nginx/html/

Build Image

1
$ docker build -t lke-example .

成功後會有多一個 lke-example 的 image

Run a Container From lke-example

1
$ docker run -p 8080:80 -d lke-example

localhost

這時候就可以看到頁面

Push 到 Docker Hub

1
2
$ docker login # 登入
$ docker push lke-example ## 這時候可能會錯誤

Trouble shotting

denied: requested access to the resource is denied

如果看到這個錯誤

要給予這個 image 一個 tag

1
$ docker tag lke-example ${docker hub name}/lke-example:v1.0.0

之後再做 push 就可以了

推上去之後

明天再來處理 deploy 到 k8s 上

文章目录
  1. 1. Create React App
    1. 1.1. Initial React Project
    2. 1.2. Dockerfile
    3. 1.3. Build Image
    4. 1.4. Run a Container From lke-example
    5. 1.5. Push 到 Docker Hub
      1. 1.5.1. Trouble shotting
|