Вы говорите, что файл Docker находится в папке приложения с этой строкой:
build: ./app
Поэтому измените его на:
build: .
Это исключит:
Cannot locate specified Dockerfile
РЕДАКТИРОВАТЬ: о файле конфигурации не найден.
Я не могу понять, что вы пытаетесь, потому что с этой строкой:
COPY . /app
Вы копируете все файлыв папку вашего приложения.Таким образом, внутри контейнера пути похожи:
app/project/app/
app/project/instance
app/run
app/Dockerfile and yml files (any you don't need, and you don't want this files inside the container.
Это то, что вы пытаетесь?
Попробуйте 'ssh' войти внутрь контейнера и проверить, существуют ли файлы, и посмотреть, соответствуют ли пути вам.
Поскольку вы говорите, что ваше приложение и файл конфигурации находятся в папке / CarrotApp.Но вы никогда не создаете эту папку.Поэтому попробуйте изменить init на:
app = Flask(__name__, instance_relative_config=True,
instance_path='/app/project/instance')
app.config.from_pyfile('flask.cfg')
EDIT2:
Чтобы просто передать нужные файлы, скопируйте только эти файлы:
COPY project /app
COPY run.py /app
COPY requirements.txt /app
или просто вставьтевсе эти файлы в папке с именем 'src' или чем-то еще, и скопируйте только эту папку:
COPY src /app
Таким образом, ваша структура будет выглядеть так:
yourproject/
src/
project
/app (created by Dockerfile)
/instance
flask.cfg
/venv
__init__.py
run.py
requirements.txt
Dockerfile and yml files