Created
August 27, 2018 14:58
-
-
Save bigslycat/07a33b3a3e066a592f26079fb28d5138 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
FROM node:10.9.0-alpine as builder | |
# Это мы отнаследовались от образа ноды на базе Альпайн-линукса, | |
# и она у на сейчас просто есть, и мы можем запускать её как в | |
# процессе билда, так и при запуске контейнера из этого образа. | |
# Так же мы этот этап сборки обзываем "builder", а зачем — узнаем ниже. | |
# Задаём рабочую дирректорию по умолчанию | |
WORKDIR /app | |
# Добавляем в образ текущуу директорию хост-системы | |
# ADD <директория хоста> <директория в образе> | |
ADD ./ ./ | |
# Устанавливаем, собираем (хз, какие у тебя команды там) | |
RUN yarn install --production && yarn build | |
# Но для того, чтобы хостить статику, нам не нужна нода. Она нам нужна только для сборки. | |
# А для того, чтобы всё красиво запускать, нам нужен другой образ: | |
FROM bigslycat/spabox | |
# Это образ nginx на базе того же Альпайн линукса. | |
# Когда мы объявляем, эту конструкцию, всё предыдущее уничтожается. | |
# Снова задаём рабочую дирректорию по умолчанию | |
WORKDIR /app | |
# Но нам нужны результаты нашего билда, и мы копируем их из предыдущего этапа — этапа сборки | |
# COPY --from=<имя этапа> /app/<дирректория с билдом> ./static | |
COPY --from=builder /app/build ./static | |
# Всё. Но тебе нужно учитывать определённые вещи: | |
# - То, что ты получаешь по запросу на урл /, не кешируется никогда, кроме: | |
# - /assets/* — ассеты кешируются навсегда. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment