今天的內容都在這個comit上哦
我不會細到講每一個步驟,如果看完不知道檔案要放那之顃,可以直接來看這個commit~
https://github.com/edwinlee1234/tomato/tree/be55823403dbcd38ef956f113cc7aaa2df95c3f4
開發總需要有環境吧,下面這份是docker-compose的檔案
最簡單來說它會把
./frontend的檔案跟frontend這個container共用,當你進到container裡面就可以用images的環境來執行了(node:14.9.0)
後端的環境就是golang:1.15.1,檔案的位置在/go/src/code
下面有執行範例,會比較好懂
# docker-compose.yml
version: '2'
services:
db: # 資料庫之後會用到
image: mysql:5.6
ports:
- "3306:3306"
environment:
- MYSQL_ROOT_PASSWORD=1234
volumes:
- ./mysql:/var/lib/mysql
phpmyadmin: # 資料庫的圖形介面
image: phpmyadmin/phpmyadmin:latest
ports:
- "9000:80"
links:
- db
redis: # 快取
image: redis:latest
ports:
- "6379:6379"
phpredisadmin: # 快取的圖形介面
image: erikdubbelboer/phpredisadmin:latest
ports:
- "9300:80"
environment:
- ADMIN_USER=admin
- ADMIN_PASS=admin
- REDIS_1_HOST=redis
- REDIS_1_PORT=6379
links:
- redis
frontend: # 前端的環境
image: node:14.9.0
volumes:
- ./frontend:/code # 本機的./fronted連通到container的/code
command: tail -F anything
ports:
- "8080:8080" # 本機的8080跟container的8080做連接
backend: # 後端的環境
image: golang:1.15.1
volumes:
- .:/go/src/code
command: tail -F anything
ports:
- "9090:9090"
先來寫一個Hello World
package main
import "fmt"
func main() {
fmt.Println("Hello World")
}
啟動docker-compose
docker-compose up -d
看一下有沒有成功
docker ps
進到docker container裡面
docker exec -it tomato_backend_1 bash
執行main.go 看看行不行
cd /go/src/code
go run main.go
開一個新的terminal,進到前端的container
docker exec -it tomato_frontend_1 bash
看一下node & npm的版號
node -v // v14.9.0
npm -v // 6.14.8
這樣環境就沒問題了!
不過正常在本機也會裝Golang,因為要用IDE的關係,如果本機沒裝IDE會讀不到references
執行程式的時侯才會進到container裡面
明天會講後端的專案結構
今天就到這!謝謝大家!