運行結果截圖:
操作流程:
1. git上clone 項目
2. windows版的docker並且安裝成功,配置3核CPU,4G內存
3. vs 2017 (15.5)版本以上。
4. 打開項目 eshopOnContainer.ServiceAndMvc
5. 設置docker-compose 為啟動項目
6. 點擊運行,就行了。
說一下自己遇到的坑:
配置鏡像加速器的時候,阿里雲的加速地址沒有生效,特別慢,后來改為DaoCloud的加速地址就快很多了
報端口 6379 被占用,我以為第一次啟動沒有成功,運行的容器把端口給占用了,結果刪除掉所有運行的容器,再次啟動依舊報端口占用的錯誤。后來經過排查是我本機裝的有redis-server
然后和項目中依賴的redis 容器啟啟動時 導致端口占用沖突。把進程redis-server.exe 停用掉就可以了。
附加知識:
windows 中查看端口占用情況: netstat -ano |findstr 6379
返回的最后一個參數是進程的PID
查看所有的進程列表: tasklist
2018-01-08 更新
替換掉eshop 的redis
問題是這樣的由於昨天第一次跑eshop,報端口占用的問題。於是把redis進程給干掉了。今天發現開發環境的項目跑不起來了。查看日志是redis沒有啟動的原因。於是又把redis手動啟動起來了。
今天晚上又想跑eshop,於是想不能把redis進程再給干掉,然后明天再重啟。
后台仔細一想:eshop用的redis 和本地裝的redis端口是用的同一個端口,於是想把eshop中用的redis,用本機裝的redis給替換掉。一不做,二不休,於是動起手來了。
主要修改如下:
docker-compose.yml
文件
刪除掉redis容器服務
basket.data:
image: redis
ports:
- "6379:6379"
刪除掉依賴該service的引用(只有basket.api引用該服務)
basket.api:
image: eshop/basket.api:${TAG:-latest}
build:
context: ./src/Services/Basket/Basket.API
dockerfile: Dockerfile
depends_on:
- basket.data
- identity.api
- rabbitmq
刪除掉- basket.data
即可。再次完美運行。目前沒有發現問題。