Многие ответы здесь говорят о том, что слияние превращает все ваши коммиты в одну, и поэтому предлагаю использовать rebase для сохранения ваших коммитов. Это неверно. И плохая идея, если вы уже сделали свои коммиты.
Слияние not уничтожает ваши коммиты. Слияние сохраняет историю! (просто посмотрите на gitk) Rebase перезаписывает историю, которая является Bad Thing после того, как вы нажали .
Использовать слияние - не переустанавливать всякий раз, когда вы уже нажали.
Вот Линус (автор git) берет на себя . Это действительно хорошо читать. Или вы можете прочитать мою собственную версию той же идеи ниже.
Снятие ветви на master:
Напротив, объединение ветви темы в master:
Вы можете создать приложение вне докера и скопировать только папку dist
в образ докера nginx .
После этого вам не нужно устанавливать node_modules
evrey time.
Пример Dockerfile
FROM nginx:latest
ENV TZ=Europe/Moscow
COPY ./dist/my-app /usr/share/nginx/html
COPY ./nginx/nginx.conf /etc/nginx/nginx.conf
Пример nginx.conf
server {
server_name my-app;
root /var/www/frontend/src;
try_files $uri $uri/ index.html;
}
Хорошей практикой является использование многоэтапных сборок при построении изображений с помощью Docker.
Пример Dockerfile
будет:
FROM node:10 as build
WORKDIR /home
COPY package.json package-lock.json .
RUN npm install
COPY . .
RUN npm build # or any other command to package
FROM nginx:alpine
COPY --from=build /home/dist/* /usr/share/nginx/html/
Вот и все:)
Вместо того, чтобы копировать всю папку node_modules в ваш контейнер, попробуйте скопировать только package.json и после этого запустить «npm install». Папка node_module не нужно копировать в контейнер, поскольку «npm install» устанавливает все необходимые модули в контейнере, она считывает все зависимости из package.json.
Это сократит время строительства :)