未找到“webpack-dev-server”命令 - Docker with Rails 6

Mar*_*ion 5 ruby-on-rails docker webpack docker-compose ruby-on-rails-6

我目前正在“dockerizing”一个 Rails 6 应用程序,以 MySQL 作为后端/管理面板,以 Angular 8 应用程序作为用户的前端。我尝试使用 docker-compose 运行两个容器,前端工作正常,但后端有问题。webpack 服务器不知何故无法启动。它总是告诉我找不到“webpack-dev-server”,然后退出。这很奇怪,因为我让相同的设置在 Linux/Ubuntu 系统上运行并且它工作正常,但在 Mac 上 Webpacker 失败了。

\n\n

这是我的设置:

\n\n
    \n
  • 卡塔琳娜操作系统:10.15.1
  • \n
  • 节点:10.12.0
  • \n
  • 红宝石:2.5.5
  • \n
\n\n

Dockerfile:

\n\n
FROM ruby:2.5.5\n\nRUN curl -sL https://deb.nodesource.com/setup_10.x | bash - && \\\n    curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \\\n    echo "deb https://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list && \\\n    apt-get update && \\\n    apt-get install -qq -y \\\n        build-essential nodejs yarn libpq-dev \\\n    && mkdir -p /app \\\n    && apt-get clean autoclean \\\n    && apt-get autoremove -y\n\nWORKDIR /tmp\nCOPY Gemfile* /tmp/\nRUN bundle install\n\nCOPY package* /tmp/\nCOPY yarn* /tmp/\nRUN yarn install\n\nADD scripts/entrypoint.sh /usr/bin/\nRUN chmod +x /usr/bin/entrypoint.sh\nENTRYPOINT ["entrypoint.sh"]\n\nWORKDIR /app\nCOPY . /app\n\nEXPOSE 3000\n\n# Start the main process.\nCMD ["rails", "server", "-b", "0.0.0.0"]\n
Run Code Online (Sandbox Code Playgroud)\n\n

docker-compose.yml:

\n\n
version: \'3\'\nservices:\n  backend:\n    build: ./backend\n    volumes:\n      - ./backend:/app\n      - ./backend/scripts:/scripts\n    ports:\n      - "3000:3000"\n    dns: # Needed for making request outside the container\n      - 1.1.1.1\n    command: ["/scripts/wait-for-it.sh", "db:3306", "--", "/scripts/wait-for-it.sh", "webpacker:3035", "--", "/scripts/start_rails.sh"]\n    depends_on:\n      - db\n      - webpacker\n      - frontend\n    environment:\n      DB_PASSWORD: root\n      DB_HOST: db\n      WEBPACKER_DEV_SERVER_HOST: webpacker # overwrites the webpacker.yml -> dev_server -> hosts value\n\n  db:\n    image: mariadb:10.4.10\n    volumes:\n      - ./volumes/mysql:/var/lib/mysql\n    environment:\n      MYSQL_ROOT_PASSWORD: root\n\n  webpacker:\n    build: ./backend\n    command: ["/app/bin/webpack-dev-server"]\n    volumes:\n      - ./backend:/app\n    ports:\n      - "3035:3035"\n\n  frontend: //This one works fine\n    build: ./frontend\n    volumes:\n      - ./frontend:/app\n      - ./frontend/node_modules:/app/node_modules\n    ports:\n      - \'4200:4200\'\n
Run Code Online (Sandbox Code Playgroud)\n\n

webpacker.yml:

\n\n
# Note: You must restart bin/webpack-dev-server for changes to take effect\n\ndefault: &default\n  source_path: app/webpacker\n  source_entry_path: packs\n  public_root_path: public\n  public_output_path: packs\n  cache_path: tmp/cache/webpacker\n  check_yarn_integrity: false\n  webpack_compile_output: false\n\n  # Additional paths webpack should lookup modules\n  # [\'app/assets\', \'engine/foo/app/assets\']\n  resolved_paths: []\n\n  # Reload manifest.json on all requests so we reload latest compiled packs\n  cache_manifest: false\n\n  # Extract and emit a css file\n  extract_css: true\n\n  static_assets_extensions:\n    - .jpg\n    - .jpeg\n    - .png\n    - .gif\n    - .tiff\n    - .ico\n    - .svg\n    - .eot\n    - .otf\n    - .ttf\n    - .woff\n    - .woff2\n\n  extensions:\n    - .mjs\n    - .js\n    - .sass\n    - .scss\n    - .css\n    - .module.sass\n    - .module.scss\n    - .module.css\n    - .png\n    - .svg\n    - .gif\n    - .jpeg\n    - .jpg\n\ndevelopment:\n  <<: *default\n  compile: true\n\n  # Verifies that correct packages and versions are installed by inspecting package.json, yarn.lock, and node_modules\n  check_yarn_integrity: false\n\n  # Reference: https://webpack.js.org/configuration/dev-server/\n  dev_server:\n    https: false\n    host: 0.0.0.0\n    port: 3035\n    public: 0.0.0.0:3035\n    hmr: false\n    # Inline should be set to true if using HMR\n    inline: true\n    overlay: true\n    compress: true\n    disable_host_check: true\n    use_local_ip: false\n    quiet: false\n    headers:\n      \'Access-Control-Allow-Origin\': \'*\'\n    watch_options:\n      ignored: \'**/node_modules/**\'\n\n\ntest:\n  <<: *default\n  compile: true\n\n  # Compile test packs to a separate directory\n  public_output_path: packs-test\n\nproduction:\n  <<: *default\n\n  # Production depends on precompilation of packs prior to booting for performance.\n  compile: false\n\n  # Extract and emit a css file\n  extract_css: true\n\n  # Cache manifest.json for performance\n  cache_manifest: true\n
Run Code Online (Sandbox Code Playgroud)\n\n

“docker-compose up”上的控制台输出(构建工作正常):

\n\n
Creating network "lms_default" with the default driver\nCreating lms_db_1        ... done\nCreating lms_webpacker_1 ... done\nCreating lms_frontend_1  ... done\nCreating lms_backend_1   ... done\nAttaching to lms_db_1, lms_frontend_1, lms_webpacker_1, lms_backend_1\nfrontend_1   | Your global Angular CLI version (8.3.23) is greater than your local\nfrontend_1   | version (8.1.3). The local Angular CLI version is used.\nfrontend_1   | \nfrontend_1   | To disable this warning use "ng config -g cli.warnings.versionMismatch false".\ndb_1         | 2020-01-28 12:11:25+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 1:10.4.10+maria~bionic started.\ndb_1         | 2020-01-28 12:11:26+00:00 [Note] [Entrypoint]: Switching to dedicated user \'mysql\'\ndb_1         | 2020-01-28 12:11:26+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 1:10.4.10+maria~bionic started.\nbackend_1    | wait-for-it.sh: waiting 15 seconds for db:3306\ndb_1         | 2020-01-28 12:11:26 0 [Note] mysqld (mysqld 10.4.10-MariaDB-1:10.4.10+maria~bionic) starting as process 1 ...\ndb_1         | 2020-01-28 12:11:26 0 [Note] InnoDB: Using Linux native AIO\ndb_1         | 2020-01-28 12:11:26 0 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins\ndb_1         | 2020-01-28 12:11:26 0 [Note] InnoDB: Uses event mutexes\ndb_1         | 2020-01-28 12:11:26 0 [Note] InnoDB: Compressed tables use zlib 1.2.11\ndb_1         | 2020-01-28 12:11:26 0 [Note] InnoDB: Number of pools: 1\ndb_1         | 2020-01-28 12:11:26 0 [Note] InnoDB: Using SSE2 crc32 instructions\ndb_1         | 2020-01-28 12:11:26 0 [Note] mysqld: O_TMPFILE is not supported on /tmp (disabling future attempts)\ndb_1         | 2020-01-28 12:11:26 0 [Note] InnoDB: Initializing buffer pool, total size = 256M, instances = 1, chunk size = 128M\ndb_1         | 2020-01-28 12:11:27 0 [Note] InnoDB: Completed initialization of buffer pool\ndb_1         | 2020-01-28 12:11:27 0 [Note] InnoDB: If the mysqld execution user is authorized, page cleaner thread priority can be changed. See the man page of setpriority().\ndb_1         | 2020-01-28 12:11:27 0 [Note] InnoDB: 128 out of 128 rollback segments are active.\ndb_1         | 2020-01-28 12:11:27 0 [Note] InnoDB: Creating shared tablespace for temporary tables\ndb_1         | 2020-01-28 12:11:27 0 [Note] InnoDB: Setting file \'./ibtmp1\' size to 12 MB. Physically writing the file full; Please wait ...\nwebpacker_1  | yarn run v1.21.1\nwebpacker_1  | error Command "webpack-dev-server" not found.\nwebpacker_1  | info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.\nlms_webpacker_1 exited with code 1\ndb_1         | 2020-01-28 12:11:28 0 [Note] InnoDB: File \'./ibtmp1\' size is now 12 MB.\ndb_1         | 2020-01-28 12:11:28 0 [Note] InnoDB: 10.4.10 started; log sequence number 20282472; transaction id 14616\ndb_1         | 2020-01-28 12:11:28 0 [Note] Plugin \'FEEDBACK\' is disabled.\ndb_1         | 2020-01-28 12:11:28 0 [Note] InnoDB: Loading buffer pool(s) from /var/lib/mysql/ib_buffer_pool\ndb_1         | 2020-01-28 12:11:28 0 [Note] Server socket created on IP: \'::\'.\ndb_1         | 2020-01-28 12:11:28 0 [Note] InnoDB: Buffer pool(s) load completed at 200128 12:11:28\ndb_1         | 2020-01-28 12:11:28 0 [Warning] \'proxies_priv\' entry \'@% root@c8d38e939209\' ignored in --skip-name-resolve mode.\ndb_1         | 2020-01-28 12:11:28 0 [Note] Reading of all Master_info entries succeeded\ndb_1         | 2020-01-28 12:11:28 0 [Note] Added new Master_info \'\' to hash table\ndb_1         | 2020-01-28 12:11:28 0 [Note] mysqld: ready for connections.\ndb_1         | Version: \'10.4.10-MariaDB-1:10.4.10+maria~bionic\'  socket: \'/var/run/mysqld/mysqld.sock\'  port: 3306  mariadb.org binary distribution\ndb_1         | 2020-01-28 12:11:29 8 [Warning] Aborted connection 8 to db: \'unconnected\' user: \'unauthenticated\' host: \'192.168.0.5\' (This connection closed normally without authentication)\nbackend_1    | wait-for-it.sh: db:3306 is available after 3 seconds\nbackend_1    | wait-for-it.sh: waiting 15 seconds for webpacker:3035\nfrontend_1   | WARNING: This is a simple server for use in testing or debugging Angular applications\nfrontend_1   | locally. It hasn\'t been reviewed for security issues.\nfrontend_1   | \nfrontend_1   | Binding this server to an open connection can result in compromising your application or\nfrontend_1   | computer. Using a different host than the one passed to the "--host" flag might result in\nfrontend_1   | websocket connection issues. You might need to use "--disableHostCheck" if that\'s the\nfrontend_1   | case.\nfrontend_1   | \xe2\x84\xb9 \xef\xbd\xa2wds\xef\xbd\xa3: Project is running at http://0.0.0.0:4200/webpack-dev-server/\nfrontend_1   | \xe2\x84\xb9 \xef\xbd\xa2wds\xef\xbd\xa3: webpack output is served from /\nfrontend_1   | \xe2\x84\xb9 \xef\xbd\xa2wds\xef\xbd\xa3: 404s will fallback to //index.html\nbackend_1    | wait-for-it.sh: timeout occurred after waiting 15 seconds for webpacker:3035\nfrontend_1   | \nfrontend_1   | chunk {0} 0.js, 0.js.map () 13.2 kB  [rendered]\nfrontend_1   | chunk {1} 1.js, 1.js.map () 19.9 kB  [rendered]\nfrontend_1   | chunk {2} 2.js, 2.js.map () 17 kB  [rendered]\nfrontend_1   | chunk {3} 3.js, 3.js.map () 31 kB  [rendered]\nfrontend_1   | chunk {4} 4.js, 4.js.map () 31.1 kB  [rendered]\nfrontend_1   | chunk {5} 5.js, 5.js.map () 57.5 kB  [rendered]\nfrontend_1   | chunk {6} 6.js, 6.js.map () 56.2 kB  [rendered]\nfrontend_1   | chunk {7} 7.js, 7.js.map () 4.59 kB  [rendered]\nfrontend_1   | chunk {8} 8.js, 8.js.map () 4.64 kB  [rendered]\nfrontend_1   | chunk {9} 9.js, 9.js.map () 9.43 kB  [rendered]\nfrontend_1   | chunk {10} 10.js, 10.js.map () 9.97 kB  [rendered]\nfrontend_1   | chunk {11} 11.js, 11.js.map () 3.71 kB  [rendered]\nfrontend_1   | chunk {12} 12.js, 12.js.map () 3.7 kB  [rendered]\nfrontend_1   | chunk {13} 13.js, 13.js.map () 22.7 kB  [rendered]\nfrontend_1   | chunk {14} 14.js, 14.js.map () 22.8 kB  [rendered]\nfrontend_1   | chunk {15} 15.js, 15.js.map () 12 kB  [rendered]\nfrontend_1   | chunk {16} 16.js, 16.js.map () 11.6 kB  [rendered]\nfrontend_1   | chunk {17} 17.js, 17.js.map () 8.39 kB  [rendered]\nfrontend_1   | chunk {18} 18.js, 18.js.map () 8.52 kB  [rendered]\nfrontend_1   | chunk {19} 19.js, 19.js.map () 5.61 kB  [rendered]\nfrontend_1   | chunk {20} 20.js, 20.js.map () 5.61 kB  [rendered]\nfrontend_1   | chunk {21} 21.js, 21.js.map () 15.9 kB  [rendered]\nfrontend_1   | chunk {22} 22.js, 22.js.map () 66.2 kB  [rendered]\nfrontend_1   | chunk {23} 23.js, 23.js.map () 65.9 kB  [rendered]\nfrontend_1   | chunk {24} 24.js, 24.js.map () 19 kB  [rendered]\nfrontend_1   | chunk {25} 25.js, 25.js.map () 18.1 kB  [rendered]\nfrontend_1   | chunk {26} 26.js, 26.js.map () 3.42 kB  [rendered]\nfrontend_1   | chunk {27} 27.js, 27.js.map () 12.6 kB  [rendered]\nfrontend_1   | chunk {28} 28.js, 28.js.map () 12.6 kB  [rendered]\nfrontend_1   | chunk {29} 29.js, 29.js.map () 14.4 kB  [rendered]\nfrontend_1   | chunk {30} 30.js, 30.js.map () 14.3 kB  [rendered]\nfrontend_1   | chunk {31} 31.js, 31.js.map () 25.7 kB  [rendered]\nfrontend_1   | chunk {32} 32.js, 32.js.map () 25.6 kB  [rendered]\nfrontend_1   | chunk {33} 33.js, 33.js.map () 39.2 kB  [rendered]\nfrontend_1   | chunk {34} 34.js, 34.js.map () 42.8 kB  [rendered]\nfrontend_1   | chunk {35} 35.js, 35.js.map () 13.1 kB  [rendered]\nfrontend_1   | chunk {36} 36.js, 36.js.map () 12.8 kB  [rendered]\nfrontend_1   | chunk {37} 37.js, 37.js.map () 31.6 kB  [rendered]\nfrontend_1   | chunk {38} 38.js, 38.js.map () 31.7 kB  [rendered]\nfrontend_1   | chunk {39} 39.js, 39.js.map () 14.9 kB  [rendered]\nfrontend_1   | chunk {40} 40.js, 40.js.map () 14.9 kB  [rendered]\nfrontend_1   | chunk {41} 41.js, 41.js.map () 37.5 kB  [rendered]\nfrontend_1   | chunk {42} 42.js, 42.js.map () 20.5 kB  [rendered]\nfrontend_1   | chunk {43} 43.js, 43.js.map () 19.8 kB  [rendered]\nfrontend_1   | chunk {44} 44.js, 44.js.map () 12.6 kB  [rendered]\nfrontend_1   | chunk {45} 45.js, 45.js.map () 12.6 kB  [rendered]\nfrontend_1   | chunk {46} 46.js, 46.js.map () 12 kB  [rendered]\nfrontend_1   | chunk {47} 47.js, 47.js.map () 12.2 kB  [rendered]\nfrontend_1   | chunk {48} 48.js, 48.js.map () 20.5 kB  [rendered]\nfrontend_1   | chunk {49} 49.js, 49.js.map () 21.9 kB  [rendered]\nfrontend_1   | chunk {50} 50.js, 50.js.map () 18.3 kB  [rendered]\nfrontend_1   | chunk {51} 51.js, 51.js.map () 18.3 kB  [rendered]\nfrontend_1   | chunk {52} 52.js, 52.js.map () 12.6 kB  [rendered]\nfrontend_1   | chunk {53} 53.js, 53.js.map () 12.6 kB  [rendered]\nfrontend_1   | chunk {54} 54.js, 54.js.map () 6.48 kB  [rendered]\nfrontend_1   | chunk {55} 55.js, 55.js.map () 24.4 kB  [rendered]\nfrontend_1   | chunk {56} 56.js, 56.js.map () 26.2 kB  [rendered]\nfrontend_1   | chunk {57} 57.js, 57.js.map () 23.9 kB  [rendered]\nfrontend_1   | chunk {58} 58.js, 58.js.map () 15.4 kB  [rendered]\nfrontend_1   | chunk {59} 59.js, 59.js.map () 15.1 kB  [rendered]\nfrontend_1   | chunk {60} 60.js, 60.js.map () 21.9 kB  [rendered]\nfrontend_1   | chunk {61} 61.js, 61.js.map () 21.9 kB  [rendered]\nfrontend_1   | chunk {62} 62.js, 62.js.map () 36.8 kB  [rendered]\nfrontend_1   | chunk {63} 63.js, 63.js.map () 36.8 kB  [rendered]\nfrontend_1   | chunk {64} 64.js, 64.js.map () 10.7 kB  [rendered]\nfrontend_1   | chunk {65} 65.js, 65.js.map () 6.5 kB  [rendered]\nfrontend_1   | chunk {66} 66.js, 66.js.map () 6.49 kB  [rendered]\nfrontend_1   | chunk {67} 67.js, 67.js.map () 14.2 kB  [rendered]\nfrontend_1   | chunk {68} 68.js, 68.js.map () 14.4 kB  [rendered]\nfrontend_1   | chunk {69} 69.js, 69.js.map () 8.34 kB  [rendered]\nfrontend_1   | chunk {70} 70.js, 70.js.map () 1.84 kB  [rendered]\nfrontend_1   | chunk {71} 71.js, 71.js.map () 12.4 kB  [rendered]\nfrontend_1   | chunk {72} 72.js, 72.js.map () 12.4 kB  [rendered]\nfrontend_1   | chunk {73} 73.js, 73.js.map () 18.1 kB  [rendered]\nfrontend_1   | chunk {74} 74.js, 74.js.map () 18.7 kB  [rendered]\nfrontend_1   | chunk {75} 75.js, 75.js.map () 11 kB  [rendered]\nfrontend_1   | chunk {76} 76.js, 76.js.map () 10.9 kB  [rendered]\nfrontend_1   | chunk {77} 77.js, 77.js.map () 20.2 kB  [rendered]\nfrontend_1   | chunk {common} common.js, common.js.map (common) 30.6 kB  [rendered]\nfrontend_1   | chunk {core-js-js} core-js-js.js, core-js-js.js.map (core-js-js) 78.7 kB  [rendered]\nfrontend_1   | chunk {css-shim-206ea950-3169f23e-js} css-shim-206ea950-3169f23e-js.js, css-shim-206ea950-3169f23e-js.js.map (css-shim-206ea950-3169f23e-js) 21.9 kB  [rendered]\nfrontend_1   | chunk {dom-96781eef-a2fb04dd-js} dom-96781eef-a2fb04dd-js.js, dom-96781eef-a2fb04dd-js.js.map (dom-96781eef-a2fb04dd-js) 19.8 kB  [rendered]\nfrontend_1   | chunk {dom-js} dom-js.js, dom-js.js.map (dom-js) 20.2 kB  [rendered]\nfrontend_1   | chunk {focus-visible-70713a0c-js} focus-visible-70713a0c-js.js, focus-visible-70713a0c-js.js.map (focus-visible-70713a0c-js) 2.15 kB  [rendered]\nfrontend_1   | chunk {hardware-back-button-5afe3cb0-js} hardware-back-button-5afe3cb0-js.js, hardware-back-button-5afe3cb0-js.js.map (hardware-back-button-5afe3cb0-js) 2.06 kB  [rendered]\nfrontend_1   | chunk {home-home-module} home-home-module.js, home-home-module.js.map (home-home-module) 34.4 kB  [rendered]\nfrontend_1   | chunk {index-69c37885-js} index-69c37885-js.js, index-69c37885-js.js.map (index-69c37885-js) 37.7 kB  [rendered]\nfrontend_1   | chunk {input-shims-7a8a317c-js} input-shims-7a8a317c-js.js, input-shims-7a8a317c-js.js.map (input-shims-7a8a317c-js) 13.5 kB  [rendered]\nfrontend_1   | chunk {ios-transition-becf5388-js} ios-transition-becf5388-js.js, ios-transition-becf5388-js.js.map (ios-transition-becf5388-js) 24.7 kB  [rendered]\nfrontend_1   | chunk {leaderboard-leaderboard-module} leaderboard-leaderboard-module.js, leaderboard-leaderboard-module.js.map (leaderboard-leaderboard-module) 20.8 kB  [rendered]\nfrontend_1   | chunk {login-login-module} login-login-module.js, login-login-module.js.map (login-login-module) 5.73 kB  [rendered]\nfrontend_1   | chunk {main} main.js, main.js.map (main) 40.9 kB [initial] [rendered]\nfrontend_1   | chunk {md-transition-f444ed6d-js} md-transition-f444ed6d-js.js, md-transition-f444ed6d-js.js.map (md-transition-f444ed6d-js) 3.46 kB  [rendered]\nfrontend_1   | chunk {polyfills} polyfills.js, polyfills.js.map (polyfills) 278 kB [initial] [rendered]\nfrontend_1   | chunk {profile-profile-module} profile-profile-module.js, profile-profile-module.js.map (profile-profile-module) 19.8 kB  [rendered]\nfrontend_1   | chunk {quiz-quiz-module} quiz-quiz-module.js, quiz-quiz-module.js.map (quiz-quiz-module) 22.5 kB  [rendered]\nfrontend_1   | chunk {quiz-result-quiz-result-module} quiz-result-quiz-result-module.js, quiz-result-quiz-result-module.js.map (quiz-result-quiz-result-module) 21.2 kB  [rendered]\nfrontend_1   | chunk {runtime} runtime.js, runtime.js.map (runtime) 10 kB [entry] [rendered]\nfrontend_1   | chunk {shadow-css-4889ae62-23996f3f-js} shadow-css-4889ae62-23996f3f-js.js, shadow-css-4889ae62-23996f3f-js.js.map (shadow-css-4889ae62-23996f3f-js) 14.8 kB  [rendered]\nfrontend_1   | chunk {status-tap-7ab22cb8-js} status-tap-7ab22cb8-js.js, status-tap-7ab22cb8-js.js.map (status-tap-7ab22cb8-js) 1.79 kB  [rendered]\nfrontend_1   | chunk {styles} styles.js, styles.js.map (styles) 112 kB [initial] [rendered]\nfrontend_1   | chunk {swipe-back-35ad8e37-js} swipe-back-35ad8e37-js.js, swipe-back-35ad8e37-js.js.map (swipe-back-35ad8e37-js) 2.68 kB  [rendered]\nfrontend_1   | chunk {swiper-bundle-ccdaac54-js} swiper-bundle-ccdaac54-js.js, swiper-bundle-ccdaac54-js.js.map (swiper-bundle-ccdaac54-js) 176 kB  [rendered]\nfrontend_1   | chunk {tabs-tabs-module} tabs-tabs-module.js, tabs-tabs-module.js.map (tabs-tabs-module) 8.14 kB  [rendered]\nfrontend_1   | chunk {tap-click-1f9d539e-js} tap-click-1f9d539e-js.js, tap-click-1f9d539e-js.js.map (tap-click-1f9d539e-js) 6.37 kB  [rendered]\nfrontend_1   | chunk {vendor} vendor.js, vendor.js.map (vendor) 5.03 MB [initial] [rendered]\nfrontend_1   | Date: 2020-01-28T12:11:46.647Z - Hash: f5c10ec9500752dc7639 - Time: 15503ms\nfrontend_1   | ** Angular Live Development Server is listening on 0.0.0.0:4200, open your browser on http://localhost:4200/ **\nfrontend_1   | \xe2\x84\xb9 \xef\xbd\xa2wdm\xef\xbd\xa3: Compiled successfully.\nbackend_1    | Database \'swm_lms_development\' already exists\nbackend_1    | Database \'swm_lms_test\' already exists\nbackend_1    | => Booting Puma\nbackend_1    | => Rails 6.0.0 application starting in development \nbackend_1    | => Run `rails server --help` for more startup options\nbackend_1    | Puma starting in single mode...\nbackend_1    | * Version 3.12.1 (ruby 2.5.5-p157), codename: Llamas in Pajamas\nbackend_1    | * Min threads: 5, max threads: 5\nbackend_1    | * Environment: development\nbackend_1    | * Listening on tcp://0.0.0.0:3000\nbackend_1    | Use Ctrl-C to stop\n
Run Code Online (Sandbox Code Playgroud)\n\n

这里是 Rails 项目的浏览器输出

\n\n

不幸的是我找不到任何解决我的问题的方法,所以我希望这里有人可以帮助我。提前致谢!

\n