Проект, над которым я сейчас работаю, состоит из 2-х интерфейсных сайтов и 3-х бэкэнд-проектов. Внешние сайты создаются с использованием Angular 7, а серверные части - с использованием Node.js.
Поскольку компания, для которой создан этот проект, довольно часто нанимает стажеров, они хотели бы создать контейнер для этого проекта, чтобы они могли просто передать изображение новым стажерам. Слушатели, в свою очередь, просто должны запустить образ, так что вся сложность установки узловых модулей и т. Д. c. будет сделано для них. Таким образом, все они имеют одинаковые зависимости, и также не будет проблем с разными операционными системами.
Прямо сейчас я все еще пытаюсь понять всю концепцию Dockerizing. Поскольку проект состоит из 5 небольших проектов, мне было интересно, возможно ли что-то подобное.
Есть еще несколько вопросов, на которые я действительно могу найти четкий ответ.
- Можно ли создать dockerfile, который сначала извлекает 5 проектов из github?
- Если у меня есть проект, который состоит из 5 разных папок, куда я могу поместить файлы docker, чтобы объединить проекты в один проект? ?
- Какой смысл в файле docker -compose.ymp? Мне кажется, что это дубликат Dockerfile
Ниже приведено то, что я пытался докеризировать в первом из 5 проектов. Я не уверен, что это правильный способ сделать это. Я получаю сообщения об ошибках git, которые мне не удалось найти, но мне удалось их решить с помощью команды запуска apk update.
Внешний сайт
FROM node:10.13-alpine
ENV NODE_ENV production
WORKDIR /usr/src/app
COPY ["package.json", "package-lock.json*", "npm-shrinkwrap.json*", "./"]
RUN apk update && apk upgrade && \
apk add --no-cache bash git openssh
RUN npm install --production --silent && mv node_modules ../
COPY . .
EXPOSE 4200
CMD ["ng", "serve"]