Использование webpacker (webpack-dev-server) для компиляции внутри контейнера докеров без перестройки
Редактировать: версия Docker 17.12.0-ce, build c97c6d6 В OSX High Sierra 10.12.6
Я в процессе включения webpacker в существующий проект рельсов 4.2 (некоторые части по-прежнему используют звездочки) и сталкиваются с некоторыми проблемами при горячей перезагрузке. Мое приложение задокументировано, и я хотел бы иметь установку, где я могу редактировать свой код React, и его компилировать и обновлять внутри моего контейнера докеры для рельсов без перестройки (например, сборку докеров) для каждого небольшого изменения.
В настоящее время я запускаю и обрабатываю код webpack-dev-server. Сервер webpack dev (http://dockerhost: 3035/webpack-dev-server/) скомпилирует том, смонтированный на вашем локальном компьютере, но когда я обновляю приложение rails, вновь собранные активы не появятся. Есть ли что-то очевидное, что выглядит неправильно с моей настройкой?
# webpacker.yml
development:
<<: *default
compile: true
# Reference: https://webpack.js.org/configuration/dev-server/
dev_server:
https: false
host: 0.0.0.0 #webpacker
port: 3035
public: 0.0.0.0:3035
hmr: true
# Inline should be set to true if using HMR
inline: true
overlay: true
compress: true
disable_host_check: true
use_local_ip: false
quiet: false
headers:
'Access-Control-Allow-Origin': '*'
watch_options:
ignored: /node_modules/
poll: 1000
# docker-compose.yml
version: '3'
networks:
pnet:
driver: bridge
services:
webpacker:
build: .
command: bundle exec bin/webpack-dev-server #./bin/webpack-dev-server
networks:
- pnet
volumes:
- .:/webpacker-app
working_dir: /webpacker-app
ports:
- '3035:3035'
- '8080:8080'
environment:
- NODE_ENV=development
- RAILS_ENV=development
- WEBPACKER_DEV_SERVER_HOST=0.0.0.0
web:
build: .
command: bundle exec passenger start
volumes:
- ~/tmp/pids:/usr/src/app/tmp/pids
- .:/webpacker-app
networks:
- pnet
ports:
- "3000:3000"
- "3443:3443"
depends_on:
- webpacker
environment:
- NODE_ENV=development
- RAILS_ENV=development
- WEBPACKER_DEV_SERVER_HOST=0.0.0.0
Ответы
Ответ 1
Я не слишком хорошо знаком с webpacker
но, глядя на ваши конфиги, я предполагаю, что вы используете адрес 0.0.0.0:3035
для доступа к 0.0.0.0:3035
dev-сервера из своего web
контейнера, когда он должен быть webpacker:3035
.
Попробуйте обновить WEBPACKER_DEV_SERVER_HOST
в конфигурации вашего web
сервиса:
web:
...
environment:
...
- WEBPACKER_DEV_SERVER_HOST=webpacker