猿问

Golang docker容器在启动后立即退出

我的容器退出了,我不知道为什么,可能是因为我对 Go 的了解不够,当然还有 Docker。


这是我的Dockerfile和docker-compose.yml。


该网络名称的原因是因为该docker-compose文件正在由父文件夹中的另一个文件与其他应用程序一起扩展。还有第2版。


我从 dockerhub 的 Go 官方图片中获取了它,and是go get./应用程序需要运行的命令。go buidgo mod downloadgo run cmd/server/main.go


FROM golang:1.13


RUN mkdir /prework_ms


COPY . /prework_ms


WORKDIR /prework_ms


RUN cd /prework_ms \

    go get ./ \

    go build \

    go mod download \

    go run cmd/server/main.go


EXPOSE 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


慕田峪9158850
浏览 267回答 1
1回答

SMILET

启动服务的命令是使用 DockerfileCMD指令声明的。此外,RUN应使用 shell 分隔命令&&:FROM golang:1.13RUN mkdir /prework_ms   COPY . /prework_ms   WORKDIR /prework_ms   RUN go get ./ && go build && go mod downloadEXPOSE 8080CMD ["go", "run", "cmd/server/main.go"]
随时随地看视频慕课网APP

相关分类

Go
我要回答