zukucode
主にWEB関連の情報を技術メモとして発信しています。

Docker webpack-dev-serverをnginxのコンテナと連携する

Dockerコンテナ内でwebpack-dev-serverを起動して、別のコンテナのnginxと連携する方法を紹介します。

以下のような構成でコンテナを使用している場合を考えます。

docker-compose.yml
version: '3'
services:
  web:
    image: nginx
    depends_on:
      - app
    ports:
      - "8080:80"
    volumes:
      - ./docker/web/default.conf:/etc/nginx/conf.d/default.conf
      - ./app:/var/www/html
  app:
    build: ./docker/app
    volumes:
      - ./docker/app/php.ini:/usr/local/etc/php/php.ini
      - ./app:/var/www/html

webコンテナはnginxのWEBサーバーのコンテナです。

appコンテナはphpnodejsなどの開発環境としてメインで使用するコンテナです。

また、wenコンテナではappコンテナと連携してphpが実行できるようになっています。

(詳しくはDocker ComposeでNginxとphpを連携するなどを参照)

webpack-dev-serverの設定

appコンテナで起動するwebpack-dev-serverの設定を以下のようにします。

host: '0.0.0.0'は、ホストOSからwebpack-dev-serverにアクセスできるようにするための設定です。

proxyでwebコンテナにアクセスするように設定します。(http://webwebnginxのコンテナ名です)

devServer: {
  port: 3000,
  host: '0.0.0.0',
  proxy: {
    '*': 'http://web'
  },
},

docker-compose.ymlの修正

以下のようにappコンテナのポート3000をホストOSからアクセスできるようにします。

docker-compose.yml
version: '3'
services:
  web:
    image: nginx
    depends_on:
      - app
    ports:
      - "8080:80"
    volumes:
      - ./docker/web/default.conf:/etc/nginx/conf.d/default.conf
      - ./app:/var/www/html
  app:
    build: ./docker/app
    ports:
      - "3000:3000"
    volumes:
      - ./docker/app/php.ini:/usr/local/etc/php/php.ini
      - ./app:/var/www/html


関連記事

  • Dockerでwebpack-dev-serverを起動してホストからアクセスする

    Dockerコンテナ内でwebpack-dev-serverを起動して、ホスト側からアクセスを可能にする方法を紹介します。以下のように、webpack-dev-serverのオプションにhost: 0...


  • webpack-dev-serverでhttpsでのアクセスを可能にする方法

    webpack-dev-serverでhttpsでのアクセスを可能にする方法を紹介します。外部APIのテストや、メディアデバイスのテストなどで、開発中のlocalhostをhttpsにする必要があると...


  • WEBアプリでプッシュ通知を実装する

    WEBアプリでプッシュ通知を実装する方法を紹介します。googleが紹介している以下のページを参考にしました。ウェブアプリへのプッシュ通知の追加 | Web | Google Develope...


  • JavaScript WEBアプリのプッシュ通知の許可を取り消す方法

    WEBアプリでプッシュ通知を実装するでWEBアプリでプッシュ通知を実装する手順を紹介しましたが、ここでは逆にプッシュ通知削除する方法を紹介します。先のページで紹介したように、ページロード時に以下のよう...


  • webpack postcssを導入する

    webpackでpostcssを導入してautoprefixerなどを行います。postcss-loaderはwebpackでpostcssを行うために必要です。postcssの設定ファイルを作成しま...


  • webpack lessをImportしてビルドする

    htmlやbodyなどに適用するベースのクラスを外部のlessファイルに実装して、スタイルをサイト全体に適用したい場合があります。外部のlessファイルをモジュールとしてImportしてwebpack...


  • ExtractTextPluginでcssファイルを出力する

    webpackのプラグインExtractTextPluginを使って、ビルドされたjsファイルからstyleの部分を抽出してcssファイルで出力します。extract-text-webpack-plu...


  • webpackの設定を開発環境と本番環境で変更する

    webpack.config.jsで本番環境でのビルドのみコードを圧縮するなどの処理を設定したい場合があります。webpackの設定を開発環境と本番環境で変更する方法を紹介します。cross-envと...


  • webpack-dev-serverで開発サーバーを起動する

    webpack-dev-serverで開発サーバーを起動します。vueファイル(単一ファイルコンポーネント)をwebpackでビルドページで紹介したwebpack.config.jsにdevServe...


  • webpack モジュールのパスを絶対パスで指定する方法

    自分で作成したモジュールをインポートするときはインポートするファイルを基準に相対パスで指定する必要があります。フォルダ構成によっては深く階層を辿らないといけないので、フォルダ構成が変わってしまうと大変...