我在一个运行 Ubuntu 16.04.5 x64的虚拟机的删除服务器上运行所有这些操作 。
我的 Go 项目的 Dockerfile 如下所示:
FROM golang:latest
ADD . $GOPATH/src/example.com/myapp
WORKDIR $GOPATH/src/example.com/myapp
RUN go build
#EXPOSE 80
#ENTRYPOINT $GOPATH/src/example.com/myapp/myapp
ENTRYPOINT ./myapp
#CMD ["./myapp"]
当我使用 运行 docker 容器时docker-compose up -d,Go 应用程序退出,我在 docker 日志中看到:
我的应用_1 | /bin/sh: 1: ./myapp: Exec 格式错误 docker_myapp_1 已退出,代码为 2
如果我使用以下方式定位图像docker images并运行图像:
docker run -it 75d4a95ef5ec
我可以看到我的 golang 应用程序运行得很好:
viper 环境是:开发 HTTP 服务器监听地址:“:3005”
当我用谷歌搜索这个错误时,有些人建议使用一些特殊标志进行编译,但我在同一台 Ubuntu 主机上运行这个容器,所以我真的很困惑为什么这不能使用 docker。
我的 docker-compose.yml 看起来像:
version: "3"
services:
openresty:
build: ./openresty
ports:
- "80:80"
- "443:443"
depends_on:
- myapp
env_file:
- '.env'
restart: always
myapp:
build: ../myapp
volumes:
- /home/deploy/apps/myapp:/go/src/example.com/myapp
ports:
- "3005:3005"
depends_on:
- db
- redis
- memcached
env_file:
- '.env'
redis:
image: redis:alpine
ports:
- "6379:6379"
volumes:
- "/home/deploy/v/redis:/data"
restart: always
memcached:
image: memcached
ports:
- "11211:11211"
restart: always
db:
image: postgres:9.4
volumes:
- "/home/deploy/v/pgdata:/var/lib/postgresql/data"
restart: always
MM们
神不在的星期二
相关分类