使用Docker部署Flutter web項(xiàng)目
Flutter web已經(jīng)發(fā)展到穩(wěn)定版了,之前開發(fā)的Qools項(xiàng)目現(xiàn)在準(zhǔn)備打包,并部署到docker上。
Flutter web構(gòu)建
在構(gòu)建前,先run項(xiàng)目,確保項(xiàng)目在本地正常運(yùn)行。
fvm flutter build web
cd項(xiàng)目根目錄,運(yùn)行上面命令,這里使用了fvm管理flutter sdk版本,所以前面多了個(gè)fvm。
build文件下就會(huì)出現(xiàn)web文件夾,文件夾內(nèi)就是構(gòu)建好的web項(xiàng)目了,需要把這些部署到服務(wù)器。
Docker部署
Docker是用來(lái)做軟件發(fā)布的一個(gè)軟件,是一個(gè)工具。需要在自己服務(wù)器上安裝docker,我的阿里云服務(wù)器系統(tǒng):CentOS8??梢詤⒖迹篽ttps://www.runoob.com/docker/centos-docker-install.html
安裝docker
先登入服務(wù)器,終端輸入
sudo yum install -y docker
啟動(dòng)docker服務(wù)
sudo systemctl start docker
systemctl enable docker # 開機(jī)啟動(dòng)
獲取nginx鏡像
docker pull nginx
運(yùn)行 docker images 查看Nginx鏡像是否獲取成功,如下所示即為獲取成功。
繼續(xù)運(yùn)行如下命令,在本機(jī)80端口運(yùn)行Nginx服務(wù)器:
docker run -p 80:80 -d nginx
如圖
列出容器
docker ps
記住CONTAINER ID 或 NAMES ,后面會(huì)用到。
在服務(wù)器新建目錄,用來(lái)存放前面構(gòu)建好的web項(xiàng)目,拷貝項(xiàng)目到你的目錄中。
服務(wù)器存放項(xiàng)目路徑: /usr/qson/nginx/html
配置文件路徑: /usr/qson/nginx/default.conf如果不需要更改,可以省略這一步
將上面服務(wù)器2個(gè)路徑下的文件拷貝到docker容器
拷貝default.conf文件
如果不需要更改default.conf,可以省略這一步
docker cp /usr/qson/nginx/default.conf ${CONTAINER ID}://etc/nginx/conf.d/default.conf
${CONTAINER ID}這個(gè)替換成前面的CONTAINER ID,這邊的CONTAINER ID是f8e9bb900547,即
docker cp /usr/qson/nginx/default.conf f8e9bb900547://etc/nginx/conf.d/default.conf
拷貝項(xiàng)目文件,關(guān)鍵
docker cp /usr/qson/nginx/html f8e9bb900547://usr/share/nginx/html
通過(guò)服務(wù)器終端更新docker nginx
docker exec f8e9bb900547 nginx -s reload
然后瀏覽器直接輸入ip地址訪問(wèn),即可看到自己的項(xiàng)目
qools web項(xiàng)目地址:http://101.37.147.31/
