iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 12
0
Kubernetes

從Docker到Kubernetes-新手入門筆記系列 第 12

Day12-docker-compose 建立development環境(上)

到目前為止,啟動container後,要對裡面的檔案做修改,目前是沒辦法的,如果在開發中,一存檔立刻重啟server,在docker底下要怎麼做?

Docker Volume可以幫忙做到,原理是啟動docker的時候告訴docker daemon有哪些資料夾直接參考local本機的資料夾,而不是原先已經copy到image裡面的檔案。

將原先的Dockerfile改名成Dockerfile.dev
修改CMD部分,檔案修改的時候可以重新啟動


FROM node:alpine

WORKDIR /usr/nestapp

COPY ./package.json ./

RUN npm install

COPY ./ ./

COPY src src
COPY test test

# 指定執行dev script
CMD ["npm", "run", "start:dev"]

在command line下,指定dockerfile

docker build -f dockerfile.dev .

啟動docker

docker run -v local資料夾:container裡對應的資料夾 image_id

或是在docker-compose.yml額外設定volumes參數

version: '3' 
services:   
  redis-server: # redis server
    image: 'redis'
  nest-app: # nestjs app name
    restart: always
    build:  #改為指定dockerfile
      context: .
      dockerfile: Dockerfile.dev 
    ports: 
      - '8080:3000'
    volumes: # 設定資料夾reference
      - /usr/nestapp/node_modules
      - ./src:/usr/nestapp/src
      - ./test:/usr/nestapp/test
  

執行docker-compose up

找不到src下main.ts檔案

利用docker exec -it 看nest-app container

container底下src確實沒有檔案

剛剛google一下,可能是跟本機是windows有關

明天再來解決。


上一篇
Day11-Docker Compose(下)
下一篇
Day13-docker-compose 建立development環境(中)
系列文
從Docker到Kubernetes-新手入門筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言