How to run golang using docker?

huangapple go评论118阅读模式
英文:

How to run golang using docker?

问题

我正在尝试使用Docker与Go语言和PostgreSQL。

我有以下项目结构:

  1. -project_name
  2. - src
  3. - app
  4. - config
  5. - main.go
  6. - .env
  7. - docker-compose.yml
  8. - Dockerfile

docker-compose.yml文件包含(我需要GO服务器和PostgreSQL):

  1. version: '3.9'
  2. services:
  3. app:
  4. container_name: logger_app
  5. build: ..
  6. ports:
  7. - "12000:12000"
  8. restart: on-failure
  9. volumes:
  10. - .:/app
  11. depends_on:
  12. - postgres
  13. networks:
  14. - MYAPP
  15. postgres:
  16. image: postgres:latest
  17. container_name: postgres_db
  18. environment:
  19. - POSTGRES_USER=${DB_USER}
  20. - POSTGRES_PASSWORD=${DB_PASSWORD}
  21. - POSTGRES_DB=${DB_NAME}
  22. - DATABASE_HOST=${DB_HOST}
  23. ports:
  24. - '5432:5432'
  25. networks:
  26. - MYAPP
  27. networks:
  28. MYAPP:
  29. driver: bridge

Dockerfile包含:

  1. FROM golang:1.18 as builder
  2. RUN mkdir /app
  3. WORKDIR /app
  4. COPY . .
  5. RUN go get -d -v ./...
  6. RUN go install -v ./...
  7. RUN go build -o /build
  8. EXPOSE 12000
  9. CMD ["/build"]

当我运行docker-compose up --build时,我得到以下错误:

  1. failed to solve with frontend dockerfile.v0: failed to read dockerfile: open /var/lib/docker/tmp/buildkit-mount868285600/Dockerfile: no such file or directory
  2. ERROR: Service 'app' failed to build : Build failed
英文:

I'm trying to use docker with go lang & PostgreSQL

I have this structure for the project:

  1. -project_name
  2. - src
  3. - app
  4. - config
  5. - main.go
  6. - .env
  7. - docker-compose.yml
  8. - Dockerfile

the docker-compose.yml file contains ( I need GO server & PostgreSQL)

  1. version: '3.9'
  2. services:
  3. app:
  4. container_name: logger_app
  5. build: ..
  6. ports:
  7. - "12000:12000"
  8. restart: on-failure
  9. volumes:
  10. - .:/app
  11. depends_on:
  12. - postgres
  13. networks:
  14. - MYAPP
  15. postgres:
  16. image: postgres:latest
  17. container_name: postgres_db
  18. environment:
  19. - POSTGRES_USER=${DB_USER}
  20. - POSTGRES_PASSWORD=${DB_PASSWORD}
  21. - POSTGRES_DB=${DB_NAME}
  22. - DATABASE_HOST=${DB_HOST}
  23. ports:
  24. - '5432:5432'
  25. networks:
  26. - MYAPP
  27. networks:
  28. MYAPP:
  29. driver: bridge

The Dockerfile contains:

  1. FROM golang:1.18 as builder
  2. RUN mkdir /app
  3. WORKDIR /app
  4. COPY . .
  5. RUN go get -d -v ./...
  6. RUN go install -v ./...
  7. RUN go build -o /build
  8. EXPOSE 12000
  9. CMD [ "/build" ]

when I run docker-compose up --build I got this error:

  1. failed to solve with frontend dockerfile.v0: failed to read dockerfile: open /var/lib/docker/tmp/buildkit-mount868285600/Dockerfile: no such file or directory
  2. ERROR: Service 'app' failed to build : Build failed

答案1

得分: 2

将构建行更改为 build: . 行。Compose 文件和 Dockerfile 在同一个目录中。

英文:

Change the build line to build: . line. The compose file and Dockerfile are in the same directory.

huangapple
  • 本文由 发表于 2022年5月31日 04:17:42
  • 转载请务必保留本文链接:https://go.coder-hub.com/72439644.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定