Почему объекты из папки public не копируются в контейнер Docker для проекта на Vue3?

Как можно скопировать 3D-модель в формате *.glb в директорию <code>%projectName%/public</code> для проекта на Vue3, который запускается в Docker-контейнере? Подключение модели через <code>uri: 'public/subfolder/model.glb'</code> работает корректно при запуске проекта на родительской машине или из Git-репозитория, но не работает в контейнере Docker, выводится ошибка 404. Как исправить данную проблему с копированием объекта в директорию Public? Требуется ли выполнить другие действия кроме <code>COPY . .</code> в Dockerfile?
  • 20 марта 2024 г. 10:29
Ответы на вопрос 2
При запуске проекта Vue3 в Docker-контейнере, файлы из папки public не копируются автоматически из-за того, что при создании образа Docker, файлы из этой папки не включаются в контекст сборки по умолчанию. 

Для того чтобы скопировать 3D-модель в формате *.glb в папку public вашего проекта Vue3, вам необходимо внести изменения в файл Dockerfile.

В Dockerfile вам нужно добавить команду COPY, которая скопирует вашу 3D-модель в папку public контейнера. Например:

```dockerfile
FROM node:latest

WORKDIR /app

COPY package.json .
COPY yarn.lock .

RUN yarn install 

# Копируем 3D-модель в папку public
COPY path/to/model.glb public/subfolder/model.glb

COPY . .

CMD ["yarn", "serve"]
```

Важно убедиться, что путь к вашей 3D-модели указан правильно в команде COPY. После этого, пересоберите Docker-образ и запустите контейнер, и ваша модель должна быть доступна по указанному uri. 

Также обратите внимание, что при использовании Docker для развертывания проекта Vue3, возможно вам потребуется добавить дополнительную конфигурацию в файл docker-compose.yml, чтобы пробросить порт, на котором работает ваше приложение Vue3.
а если попробовать без 'public', просто href="/subfolder/model.glb" ?
Похожие вопросы