Разработать игры с игровой рамкой HTML5 Gameclosure с использованием Docker и Gitlab CI.
Docker для разработки
Следуя руководству Gameclosure, я сделал Dockerfile, который имеет Gameclosure/Devkit Установлен где я скопировал manifest.json, package.json и запустить команды в установить зависимости :
COPY --chown=node manifest.json package.json ./
RUN devkit install
COPY --chown=node ./package.json ./
RUN npm install
CMD ["devkit", "serve"]
Мой проект Только нуждается 2 папки: SRC для исходных кодов и Ресурсы для активов. Это папки, требуемые для Gameclosure, все остальное — зависимости и установлены на изображении Docker. Используя докер-состав , Я Установите эти папки в контейнер и разоблачить порт 9200 .
volumes:
- ./src:/home/node/game/src
- ./resources:/home/node/game/resources
ports:
- 9200:9200
На хост -машине я могу получить доступ к странице Devkit через браузер по адресу Localhost: 9200 как обычно.
Непрерывное развертывание
Чтобы построить проект, мне нужен другой Docker-Compose Конфигурация в гору A сборка папка и Запустите команду сборки вместо обслуживать .
volumes:
- ./build:/home/node/game/build
command: devkit debug browser-mobile
Я не хотел создавать игру вручную, поэтому я использовал сервис Gitlab CI/CD, чтобы получить ее запускает контейнер, строит игра и развертывает для меня страниц. Я создаю это .gitlab-ci.yml Файл с Страницы работа, что Встроить игру в * public* Артефакты :
В отличие от страниц GitHub, которые могут только построить Jekyll, страницы Gitlab могут автоматически строить практически все с помощью сервиса CI/CD.
pages:
stage: deploy
script:
- docker-compose -f docker-compose.yml -f docker-compose.browser-mobile.yml up
- cp -a build/debug/browser-mobile/. public/
artifacts:
paths:
- public
Теперь, каждый раз, когда я подталкиваю к своему репозиторию Gitlab, игра будет построена и подана на страницах Gitlab.
Оригинал: «https://dev.to/netcell/developing-gameclosure-with-docker-and-gitlab-ci-5em»