我希望docker中go mod download和go build命令运行在/wmp/而非/下,要如何修改FROM $golang:1.20-alpine3.17 RUN apk add --no-cache ffmpeg WORKDIR /s COPY go.mod go.sum ./ RUN go mod download COPY . ./ RUN go build -o /wmp . COPY bench/wmp/start.sh / RUN chmod +x /start.sh ENTRYPOINT [ "/start.sh" ]
时间: 2023-12-17 12:04:23 浏览: 42
要将 `go mod download` 和 `go build` 命令运行在 `/wmp/` 目录而非根目录下,你可以在 `WORKDIR` 之后添加一条命令将工作目录切换到 `/wmp/`,然后相应地修改 `COPY` 和 `go build` 的路径。
以下是修改后的 Dockerfile 示例:
```Dockerfile
FROM $golang:1.20-alpine3.17
RUN apk add --no-cache ffmpeg
WORKDIR /s
COPY go.mod go.sum ./
RUN go mod download
WORKDIR /wmp
COPY . ./
RUN go build -o /wmp/wmp
COPY bench/wmp/start.sh /
RUN chmod +x /start.sh
ENTRYPOINT [ "/start.sh" ]
```
在这个示例中,我们使用了两个 `WORKDIR` 命令。第一个将工作目录切换到 `/s` 目录,用于执行 `go mod download` 命令。然后,我们再次使用 `WORKDIR` 将工作目录切换到 `/wmp/` 目录,并将 `COPY` 和 `go build` 的路径相应地修改为 `/wmp/` 目录下的文件和目录。
这样就可以确保 `go mod download` 和 `go build` 命令在 `/wmp/` 目录下运行了。