chincharovpc
@chincharovpc

Как правильно прописать код в Docker?

Запускаю код на Go в докере

docker-compose.yml
version: '3.4'

services:
  app:
    image: appName
    container_name: appName
    restart: on-failure
    build:
      context: .
      dockerfile: Dockerfile
    ports:
      - ${HTTP_PORT}:${HTTP_PORT}
    env_file:
      - .env


Dockerfile
FROM golang:1.18-alpine3.14 AS builder

RUN go version
WORKDIR /root/appName
COPY . .
RUN go mod download
RUN GOOS=linux go build -o ./.bin/app .

WORKDIR /root/appName/.bin
ARG HTTP_PORT
EXPOSE $HTTP_PORT
CMD ["./app"]


Почему-то
CMD ["./app"]
ругается на отсутствие файла app, хотя команда ls его показывает
Как мне решить проблему?

UPD: Если скомпилировать программу в папку .bin, прописать в volumes: .bin/:/root/appName/.bin/ , а затем запустить докер, то работает
  • Вопрос задан
  • 156 просмотров
Пригласить эксперта
Ответы на вопрос 1
mayton2019
@mayton2019
Bigdata Engineer
У тебя в какой папке лежит app?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы