Использование команды Docker COPY только для копирования файлов с определенным расширением - PullRequest
0 голосов
/ 24 марта 2020

Я работаю над настройкой нового процесса сборки для одного из наших Angular приложений. Чтобы уменьшить размер пакета, я добавил шаг сборки, который включает в себя распаковку всех файлов в dist после сборки.

Теперь в папке dist есть все обычные файлы комплекта и все файлы .gz. Я хотел бы скопировать только файлы .gz в каталог назначения. Ниже приведен фрагмент файла docker, в котором я пытался использовать подстановочный знак, но, похоже, он не работает.

# generate build
# RUN ng build --prod --output-path=dist
npm run build

############
### prod ###
############

# base image
FROM nginx:1.16.0-alpine

# copy artifact build from the 'build environment' and place it in the nginx servers public directory
COPY --from=build /app/dist/*.gz /usr/share/nginx/html
COPY ./nginx.conf /etc/nginx/conf.d/default.conf 

1 Ответ

0 голосов
/ 26 марта 2020

Итак, я наконец-то понял это, и у меня была пара проблем с настройкой docker. Надеюсь, это может помочь кому-то еще в будущем.

  1. Я забыл указать путь вывода моей сборки. Мне нужно было '--output-path=dist' после 'RUN npm run build'
  2. Серверу также нужны обычные файлы вместе с файлами .gz, поэтому оператор копирования должен быть 'COPY --from=build /app/dist /usr/share/nginx/html'
  3. Сервер должен знать, чтобы использовать файлы .gz. В файле nginx .conf укажите 'gzip_static on;'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...