我是Docker的新手,所以請原諒我,但是當Main.go位于根層時,我有一個作業的dockerfile和docker-compose,但是在這個專案中,如果我把main.go放在根層,應用程式會中斷。
檔案結構
queue-backend
- .想法
- cmd
- 應用代碼
- handler.go。
- helper.go。
- main.go。
- routes.go
- 串列
- 形式
- 模型
- モンクレードバッグ
- models.go。
- 臨時工
.gitignore
docker-compose.yml
Dockerfile
go.mod
README.md
倉庫
擴展
無論如何......我的docker檔案看起來像這樣
FROM golang:1.16。
WorkKDIR /app
COPY go.mod .
COPY go.sum .
運行 go mod 下載。
復制 .../... .
RUN curl -sSfL https://raw.githubusercontent.com/cosmtrek/air/master/install.sh | sh -s -- -b $(go env GOPATH)/bin。
CMD ["air"]
Docker-compose.yml看起來像
version: '3.9'/span>
服務。
backend:
構建。""服務: backend: build:
埠。
- 8000:8000.
卷。
- .:/app
depends_on:
- mongodb_container
mongodb_container:
影像: mongo:latest
環境。
MONGO_INITDB_ROOT_USERNAME: queue-delivery
MONGO_INITDB_ROOT_PASSWORD: 密碼
埠。
- 27017:27017.
卷。
- mongodb_data_container:/data/db
卷。
mongodb_data_container。
我試著將WORKDIR設定為/app/cmd/appCode或/cmd/appCode,并在docker-compose中匹配到.:/app/cmd/appCode和.:/cmd/appCode,但都不起作用,它總是回傳這個,或上述的路徑,而不只是"/app "路徑
backend_1 | /app中沒有Go檔案
backend_1 | 構建失敗,錯誤:退出狀態1。
在這一點上,我不確定還能嘗試什么......
uj5u.com熱心網友回復:
為了解決docker-compose.yml中的Dockerfile,你需要改變構建部分,如下所示
version: '3.9'。
服務。
backend:
build:
context: .
dockerfile。Dockerfile
埠。
- 8000:8000.
卷。
- .:/app
depends_on:
- mongodb_container
mongodb_container:
影像: mongo:latest
環境。
MONGO_INITDB_ROOT_USERNAME: queue-delivery
MONGO_INITDB_ROOT_PASSWORD: 密碼
埠。
- 27017:27017.
卷。
- mongodb_data_container:/data/db
卷。
mongodb_data_container。
你的Docker檔案有一些問題,
你的Docker檔案有一些問題。
FROM golang:1.16。
WORKDIR /app
# 檔案修改必須在最后加入,以避免重復安裝依賴關系
RUN curl -sSfL https://raw.githubusercontent.com/cosmtrek/air/master/install.sh | sh -s -- -b $(go env GOPATH)/bin
COPY go.mod .
COPY go.sum . # 在目錄結構中找不到這個檔案
運行 go mod 下載。
復制 .../... . # 不有意義,只需使用COPY .
CMD ["空氣"]
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/329377.html
標籤:
