获取权限拒绝/ bin / sh启动生产中的服务器| 泊坞窗,撰写

我正在生产服务器上运行sudo docker-compose来启动我的Go容器。 我有我的生产服务器sudo访问,但不是根用户。

错误:

 go_1 | /bin/sh: ./: Permission denied 

泊坞窗,compose.yml

 go: build: context: ./api args: app_env: ${APP_ENV} volumes: - ./api:/go/src/myproject/api expose: - "8080" 

去Dockerfile

 From golang:1.8.3-alpine3.6 RUN apk update && \ apk add \ bash \ build-base \ curl \ make \ git \ && rm -rf /var/cache/apk/* ARG app_env ENV APP_ENV $app_env COPY . /go/src/myproject/api WORKDIR /go/src/myproject/api CMD if [ ${APP_ENV} = prod ]; \ then \ ./; \ else \ go get github.com/pilu/fresh && \ fresh; \ fi EXPOSE 8080 

任何想法如何解决这个问题?

您需要构build您的go程序,然后通过CMD告知Docker使用生成的二进制文件作为默认的可执行文件。

尝试这样的事情:

 From golang:1.8.3-alpine3.6 RUN apk update && \ apk add \ bash \ build-base \ curl \ make \ git \ && rm -rf /var/cache/apk/* ARG app_env ENV APP_ENV $app_env COPY . /go/src/myproject/api WORKDIR /go/src/myproject/api RUN go get ./ RUN go build CMD if [ ${APP_ENV} = prod ]; \ then \ api; \ else \ go get github.com/pilu/fresh && \ fresh; \ fi EXPOSE 8080