使用Docker部署js前端
1.創建Dockerfile
在項目跟目錄下創建Dockerfile文件:
# 使用nginx作為基礎鏡像
FROM nginx:1.19.1# 指定工作空間
WORKDIR /data/web# 將 yarn build 打包后的build文件夾添加到工作空間
ADD build build# 將項目必要文件添加到工作空間,這里我們把nginx配置文件維護在項目里,部署時直接移動配置文件,就不需要在去處理nginx配置了
COPY ./config/nginx.conf /etc/nginx/conf.d/default.conf# 暴露80端口
EXPOSE 80# 啟動nginx,要用前臺啟動
ENTRYPOINT ["nginx", "-g", "daemon off;"]
2.打包項目代碼
假設使用yarn構建的前端
yarn build
3.打包鏡像
打包最新鏡像,鏡像名為web,tag為latest
docker build -t web:latest .
查看打包好的鏡像
docker images
4.啟動容器
使用鏡像web:latest啟動容器,容器名稱為my-web,端口映射到8000
docker run -d --name my-web -p 8000:80 web:latest
查看運行中的容器
docker ps
最后直接在瀏覽器打開 ip:8000,就可以看到web頁面了
使用Docker部署后端
后端打包就更簡單了,它不需要nginx環境,直接運行二進制文件就行
1.創建Dockerfile
在項目跟目錄下創建Dockerfile文件:
# 使用centos作為基礎鏡像
FROM centos# 指定工作空間
WORKDIR /data/service# 將項目必要文件添加到工作空間
ADD config config
ADD template template# 將服務打包后的二進制文件添加到工作空間
ADD admin-api admin-api# 運行二進制文件啟動服務
ENTRYPOINT ["./admin-api"]
2.打包鏡像啟動容器
除了dockerfile不一樣,打包鏡像和啟動容器都是一樣的
# 打包項目代碼
go build# 打包鏡像
docker build -t admin-api:latest . # 查看打包好的鏡像
docker images # 使用鏡像admin-api:latest啟動容器,容器名稱為admin-api,端口映射到8001
docker run -d --name admin-api -p 8001:80 admin-api:latest# 查看運行中的容器
docker ps
以上是docker的簡單使用示例,在實際運用過程中,我們還可以把項目打包過程寫進dockerfile,或結合ci讓gitlab-runner來進行項目打包。打包出來的鏡像,以版本號打個tag在鏡像上用來區分不同版本的鏡像,還可以將鏡像上傳到公司的鏡像倉庫。在部署時可以用更高階的容器編排工具來實現高可用分布式部署。后面有會慢慢更新這些內容。