我的容器退出了,我不知道为什么,可能是因为我对 Go 的了解不够,当然还有 Docker。这是我的Dockerfile和docker-compose.yml。该网络名称的原因是因为该docker-compose文件正在由父文件夹中的另一个文件与其他应用程序一起扩展。还有第2版。我从 dockerhub 的 Go 官方图片中获取了它,and是go get./应用程序需要运行的命令。go buidgo mod downloadgo run cmd/server/main.goFROM golang:1.13RUN mkdir /prework_msCOPY . /prework_msWORKDIR /prework_msRUN cd /prework_ms \ go get ./ \ go build \ go mod download \ go run cmd/server/main.goEXPOSE 8080码头工人-compose.yml:version: "2"services: go: build: . volumes: - .:/prework_ms ports: - "8080:8080" networks: - appnet mysql: image: mysql:5.7.25 ports: - "3306:3306" volumes: - ./sql:/docker-entrypoint-initdb.d/ networks: - appnet environment: MYSQL_ROOT_PASSWORD: prework MYSQL_DATABASE: prework
1 回答
SMILET
TA贡献1796条经验 获得超4个赞
启动服务的命令是使用 DockerfileCMD指令声明的。此外,RUN应使用 shell 分隔命令&&:
FROM golang:1.13
RUN mkdir /prework_ms
COPY . /prework_ms
WORKDIR /prework_ms
RUN go get ./ && go build && go mod download
EXPOSE 8080
CMD ["go", "run", "cmd/server/main.go"]
- 1 回答
- 0 关注
- 266 浏览
添加回答
举报
0/150
提交
取消