Я пытаюсь запустить приложение Golang в режиме разработки из Docker
Dockerfile
FROM golang
WORKDIR /usr/src/app
COPY . /usr/src/app
RUN go get -d -v .
RUN go build -o main .
CMD ["./main"]
docker-compose.yml
version: "3.3"
services:
database:
image: postgres
volumes:
- ./tmp/db:/var/lib/postgresql/data
ports:
- 6060:5432
api:
build: ./demoapp-api
volumes:
- ./demoapp-api:/usr/src/app
ports:
- 5000:5000
depends_on:
- database
Структура файла выглядит следующим образом:
При запуске сборки я получаю эту ошибку ( полный журнал ):
Recreating f97ae865ad6d_demoapp_api_1_6f198d4b1db4 ... error
ERROR: for f97ae865ad6d_demoapp_api_1_6f198d4b1db4 Cannot start service api: OCI runtime create failed: container_linux.go:348: starting container process caused "exec: \"./main\": stat ./main: no such file or directory": unknown
ERROR: for api Cannot start service api: OCI runtime create failed: container_linux.go:348: starting container process caused "exec: \"./main\": stat ./main:no such file or directory": unknown
ERROR: Encountered errors while bringing up the project.
Внутри файла контейнера ./main
существует
MBP-Pavel:demoapp pavel$ docker run --rm -it 4ae6ff9cf413 sh
# pwd
/usr/src/app
# ls
Dockerfile main main.go
#
Если удалить службу volumes
из api
, все в порядке, но мне нужно полностью восстановить моюприложение (с загрузкой зависимостей).Что я делаю не так?