获取权限拒绝/ 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