douji7399 2017-09-27 20:08
浏览 73
已采纳

/ bin / sh拒绝获得在生产环境中启动Go服务器的权限 泊坞窗,撰写

I'm running sudo docker-compose on my production server to start up my Go container. I have sudo access in my production server but am not the root user.

error:

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

docker-compose.yml

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

Go 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

Any ideas on how to resolve this?

  • 写回答

2条回答 默认 最新

  • doushui5587 2017-09-27 20:32
    关注

    You need to build your go program and then tell Docker, with CMD, to use the resulting binary as the default executable.

    Try something like this:

    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
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 python点云生成mesh精度不够怎么办
  • ¥15 QT C++ 鼠标键盘通信
  • ¥15 改进Yolov8时添加的注意力模块在task.py里检测不到
  • ¥50 高维数据处理方法求指导
  • ¥100 数字取证课程 关于FAT文件系统的操作
  • ¥15 如何使用js实现打印时每页设置统一的标题
  • ¥15 安装TIA PortalV15.1报错
  • ¥15 能把水桶搬到饮水机的机械设计
  • ¥15 Android Studio中如何把H5逻辑放在Assets 文件夹中以实现将h5代码打包为apk
  • ¥15 使用小程序wx.createWebAudioContext()开发节拍器