【发布时间】:2018-12-30 01:52:35
【问题描述】:
我在 Ubuntu 16.04 上安装了 Go。这是我的 GOPATH=/home/{username}/work。
我在 /home/{username}/work/src 中创建了一个项目。
这是我的项目文件夹层次结构。
project-name
services
configuration
api
main.go
Dockerfile
bff
api
main.go
Dockerfile
docker-compose.yml
favicon.ico
README.md
我可以使用我的 dockerfile 构建和运行,但我无法使用 docker-compose 构建和运行。
我找不到任何解决方案。
配置服务dockerfile:
FROM golang:1.11.1-alpine3.8 as builder
RUN apk update && apk add git && go get gopkg.in/natefinch/lumberjack.v2
RUN mkdir -p /go/src/project-name/services/configuration
RUN CGO_ENABLED=0
RUN GOOS=linux
ADD . /go/src/project-name/services/configuration
ENV GOPATH /go
WORKDIR /go/src/project-name/services/configuration/api
RUN go get
RUN go build
FROM alpine
RUN apk update
RUN apk add curl
RUN mkdir -p /app
COPY --from=builder /go/src/project-name/services/configuration/api/ /app/
RUN chmod +x /app/api
WORKDIR /app
EXPOSE 5001
ENTRYPOINT ["/app/api"]
它适用于 dockerfile。
这是我的 docker-compose 文件:
version: '3.4'
services:
bff:
image: project-name/bff:${TAG:-latest}
build:
context: .
dockerfile: services/bff/Dockerfile
ports:
- "5000:5000"
container_name: bff
depends_on:
- configuration
configuration:
image: project-name/configuration:${TAG:-latest}
build:
context: .
dockerfile: services/configuration/Dockerfile
ports:
- "5001:5001"
container_name: configuration
没用。
“run go get”命令运行时报错,错误为:
can't load package: package project-name/services/configuration/api: no Go files in /go/src/project-name/services/configuration/api
ERROR: Service 'configuration' failed to build: The command '/bin/sh -c go get' returned a non-zero code: 1
【问题讨论】:
-
你的
lenitivo-server/services/configuration/api目录的内容是什么? -
@Flimzy 只有一个文件是 main.go
-
如果你发出命令
docker make ./services/configuration/Dockerfile会发生什么?
标签: docker go docker-compose