在docker下运行vue/cli应用程序简单index.html打开
Runing vue/cli app under docker simple index.html is opened
我想在 docker 下安装我的@vue/cli 4.0.5 应用程序,我找到了这个包
https://hub.docker.com/r/ebiven/vue-cli
假设这就是我需要的(?)我用
修改了 _Docker/docker-compose.yml
web:
container_name: vtasks_web
build:
context: ./web
dockerfile: Dockerfile.yml
environment:
- APACHE_RUN_USER=www-data
volumes:
- ${APP_PATH_HOST}:${APP_PTH_CONTAINER}
ports:
- 8088:80
working_dir: ${APP_PTH_CONTAINER}
...
vue_cli:
container_name: vtasks_vue_cli
image: ebiven/vue-cli:latest
volumes:
- ${APP_PATH_HOST}:${APP_PTH_CONTAINER}
working_dir: ${APP_PTH_CONTAINER}
command: npm install
构建应用程序并接下来检查日志我没有错误,还创建了 node_modules(我之前删除了它):
但是进入灌木丛我运行
npm run serve
命令,它显示:
ONE Compiled successfully in 10065ms 4:21:52 PM
App running at:
- Local: http://localhost:8080/
It seems you are running Vue CLI inside a container.
Access the dev server via http://localhost:<your container's external mapped port>/
Note that the development build is not optimized.
To create a production build, run npm run build.
所以我运行
http://localhost:8088/
在网络容器中我设置了8088:80
但在浏览器中,我看到 index.html 已打开(按标题和页面内容)但未呈现 js?
什么是有效方式?
修改后的块:
查看 https://github.com/ebiven/docker-vue-cli 上的演示,我明白了
ebiven/docker-vue-cli 用作 Web 容器,因此删除 node_modules 目录并重新制作我的 _Docker/docker-compose.yml :
version: '3.5'
services:
web:
container_name: vtasks_web
image: ebiven/vue-cli
command: npm install
# command: npm install ; npm run serve // I GOT ERROR HERE
# command: npm run serve
build:
context: ./web
dockerfile: Dockerfile.yml
environment:
- APACHE_RUN_USER=www-data
volumes:
- ${APP_PATH_HOST}:${APP_PTH_CONTAINER}
ports:
- "8088:80"
working_dir: ${APP_PTH_CONTAINER}
db:
container_name: vtasks_db
image: mysql:5.7.28
restart: always
environment:
- MYSQL_DATABASE=DockerVTasks
- MYSQL_USER=docker_user
- MYSQL_PASSWORD=4321
- MYSQL_ALLOW_EMPTY_PASSWORD=false
- MYSQL_ROOT_PASSWORD=321
- TZ=Europe/Kiev
volumes:
- ${DB_PATH_HOST}:/var/lib/mysql
adminer:
container_name: vtasks_adminer
image: adminer
restart: always
ports:
- 8089:8080
links:
- db
我看到的结果:
$ docker-compose up -d --build
Building web
Step 1/6 : FROM php:7.3-apache
---> 5af347316d4b
Step 2/6 : RUN apt-get update && apt-get install -y python libfreetype6-dev libwebp-dev libjpeg62-turbo-dev libpng-dev libzip-dev nano mc git-core curl build-essential openssl libssl-dev libgmp-dev libldap2-dev netcat locate && git clone https://github.com/nodejs/node.git && cd node && git checkout v12.0.0 && ./configure && make && make install
---> Using cache
---> b56b2543f6bd
Step 3/6 : RUN npm install cross-env
---> Using cache
---> f8abda742c47
Step 4/6 : RUN docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-webp-dir=/usr/include/ --with-jpeg-dir=/usr/include/
---> Using cache
---> df0636ba5b86
Step 5/6 : RUN docker-php-ext-install gd pdo pdo_mysql zip gmp bcmath pcntl ldap sysvmsg exif && a2enmod rewrite
---> Using cache
---> 307c9f243f02
Step 6/6 : COPY virtualhost.conf /etc/apache2/sites-enabled/000-default.conf
---> Using cache
---> 3c733883faaa
Successfully built 3c733883faaa
Successfully tagged ebiven/vue-cli:latest
Recreating vtasks_web ...
vtasks_db is up-to-date
Recreating vtasks_web
Recreating vtasks_web ... done
serge@athoe:/mnt/_work_sdb8/wwwroot/lar/VApps/vtasks/_Docker$ docker logs --tail=40 vtasks_web
> node-sass@4.13.0 install /var/www/vtasks_docker_root/node_modules/node-sass
> node scripts/install.js
Downloading binary from https://github.com/sass/node-sass/releases/download/v4.13.0/linux-x64-72_binding.node
Download complete
Binary saved to /var/www/vtasks_docker_root/node_modules/node-sass/vendor/linux-x64-72/binding.node
Caching binary to /root/.npm/node-sass/4.13.0/linux-x64-72_binding.node
> core-js@3.6.1 postinstall /var/www/vtasks_docker_root/node_modules/core-js
> node -e "try{require('./postinstall')}catch(e){}"
Thank you for using core-js ( https://github.com/zloirock/core-js ) for polyfilling JavaScript standard library!
The project needs your help! Please consider supporting of core-js on Open Collective or Patreon:
> https://opencollective.com/core-js
> https://www.patreon.com/zloirock
Also, the author of core-js ( https://github.com/zloirock ) is looking for a good job -)
> ejs@2.7.4 postinstall /var/www/vtasks_docker_root/node_modules/ejs
> node ./postinstall.js
Thank you for installing EJS: built with the Jake JavaScript build tool (https://jakejs.com/)
> node-sass@4.13.0 postinstall /var/www/vtasks_docker_root/node_modules/node-sass
> node scripts/build.js
Binary found at /var/www/vtasks_docker_root/node_modules/node-sass/vendor/linux-x64-72/binding.node
Testing binary
Binary is fine
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.11 (node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.11: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
added 1239 packages from 876 contributors and audited 19413 packages in 26.747s
found 0 vulnerabilities
我看到node_modules目录生成了,还需要运行
npm run serve
在
之后
npm install
修改块#2:
修改命令为
command: bash -c "npm install && npm run serve"
我得到了下一个没有错误的输出:
$ docker logs --tail=20 vtasks_web
<s> [webpack.Progress] 93% after chunk asset optimization
<s> [webpack.Progress] 93% asset optimization
<s> [webpack.Progress] 94% after asset optimization
<s> [webpack.Progress] 94% after seal
<s> [webpack.Progress] 95% emitting
<s> [webpack.Progress] 95% emitting HtmlWebpackPlugin
<s> [webpack.Progress] 95% emitting CopyPlugin
<s> [webpack.Progress] 98% after emitting
<s> [webpack.Progress] 98% after emitting CopyPlugin
DONE Compiled successfully in 10316ms4:36:18 AM
<s> [webpack.Progress] 100%
App running at:
- Local: http://localhost:8080/
It seems you are running Vue CLI inside a container.
Access the dev server via http://localhost:<your container's external mapped port>/
但是url我要运行哪一个?
在
http://localhost:8080/
我收到错误:
This site can’t be reachedlocalhost
refused to connect.
我尝试为格式设置一些代码:
但我不确定他们叫什么:
your container's external mapped port
?
但是我应该使用哪种语法?
修改块#3
运行
http://localhost:8080/
在我的浏览器中出现错误:
This site can’t be reached
localhost refused to connect.
Checking logs I see : $ docker logs --tail=40 vtasks_web
<s> [webpack.Progress] 87% after chunk id optimization
<s> [webpack.Progress] 87% record modules
<s> [webpack.Progress] 87% record modules RecordIdsPlugin
<s> [webpack.Progress] 87% record chunks
<s> [webpack.Progress] 87% record chunks RecordIdsPlugin
<s> [webpack.Progress] 88% hashing
<s> [webpack.Progress] 88% after hashing
<s> [webpack.Progress] 88% after hashing HotModuleReplacementPlugin
<s> [webpack.Progress] 89% record hash
<s> [webpack.Progress] 89% module assets processing
<s> [webpack.Progress] 90% chunk assets processing
<s> [webpack.Progress] 90% additional chunk assets processing
<s> [webpack.Progress] 90% additional chunk assets processing HotModuleReplacementPlugin
<s> [webpack.Progress] 91% recording
<s> [webpack.Progress] 91% recording HotModuleReplacementPlugin
<s> [webpack.Progress] 92% additional asset processing
<s> [webpack.Progress] 92% chunk asset optimization
<s> [webpack.Progress] 93% after chunk asset optimization
<s> [webpack.Progress] 93% asset optimization
<s> [webpack.Progress] 94% after asset optimization
<s> [webpack.Progress] 94% after seal
<s> [webpack.Progress] 95% emitting
<s> [webpack.Progress] 95% emitting HtmlWebpackPlugin
<s> [webpack.Progress] 95% emitting CopyPlugin
<s> [webpack.Progress] 98% after emitting
<s> [webpack.Progress] 98% after emitting CopyPlugin
DONE Compiled successfully in 11638ms12:10:15 PM
<s> [webpack.Progress] 100%
App running at:
- Local: http://localhost:8080/
It seems you are running Vue CLI inside a container.
Access the dev server via http://localhost:<your container's external mapped port>/
Note that the development build is not optimized.
To create a production build, run npm run build.
但是在我的 _Docker/docker-compose.yml 中我有选项:
ports:
- "8088:80"
实际上我有几个 docker 项目,例如:
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
99bc972f0840 ebiven/vue-cli "docker-php-entrypoi" 32 hours ago Up 8 minutes 0.0.0.0:8088->80/tcp vtasks_web
fcb6d879effa adminer "entrypoint.sh docke" 2 weeks ago Up 8 minutes 0.0.0.0:8089->8080/tcp vtasks_adminer
b0b81c6587bb mysql:5.7.28 "docker-entrypoint.s" 2 weeks ago Restarting (1) 47 seconds ago vtasks_db
端口问题令人困惑...
谢谢!
您需要为 node_modules
目录和 dist
目录创建一个 "named volume",这样这些目录就不会被您的绑定挂载覆盖(这个东西:${APP_PATH_HOST}:${APP_PTH_CONTAINER}
).
This教程解释得更好:
The second is a named volume, node_modules
. When Docker runs the npm install
instruction listed in the application Dockerfile
, npm
will create a new node_modules
directory on the container that includes the packages required to run the application. The bind mount we just created will hide this newly created node_modules
directory, however. Since node_modules
on the host is empty, the bind will map an empty directory to the container, overriding the new node_modules
directory and preventing our application from starting. The named node_modules
volume solves this problem by persisting the contents of the /home/node/app/node_modules
directory and mounting it to the container, hiding the bind.
为此,您可以在 web
服务下添加两个新卷,并将它们添加到 docker-compose.yml
底部的 volumes
下:
web:
volumes:
- ${APP_PATH_HOST}:${APP_PTH_CONTAINER}
- node_modules:${APP_PTH_CONTAINER}/node_modules
- dist:${APP_PTH_CONTAINER}/dist
volumes:
node_modules:
dist:
我让 VueCLI 在 Docker 中使用以下文件工作:
Dockerfile
:
FROM node:lts-alpine
# install simple http server for serving static content
RUN npm install --quiet -g http-server
# install the vue-cli
RUN npm install --quiet --global \
@vue/cli
# create app directory
RUN mkdir /app
# copy both 'package.json' and 'package-lock.json' (if available)
COPY package*.json /app/
# copy project files and folders to the current working directory (i.e. 'app' folder)
COPY . /app/
# make the 'app' folder the current working directory
WORKDIR /app
# install project dependencies
RUN npm install
# build the app
RUN npm run build
docker-compose.yml
:
version: '3'
services:
web:
build:
context: .
dockerfile: Dockerfile
volumes:
- .:/app
- node_modules:/app/node_modules
- dist:/app/dist
ports:
- "8080:8080"
# uncomment command below to run development version
# command: "npm run serve"
command: "http-server dist"
volumes:
node_modules:
dist:
我 运行 docker-compose up
然后我的应用程序在 http://localhost:8080/
.
可用
第一次更新 Dockerfile
后,请务必重建容器,例如docker-compose up --build
.
我在 docker-compose 文件中的做法是:
command: bash -c "npm install && npm run serve"
- 首先,请检查您的 Dockerfile for vue app。您必须包含 EXPOSE 指令。
- 然后确保您的 docker-compose 正确地将您的主机端口映射到内部 docker 端口
ports:
- LOCAL_PORT:PORT_YOU_EXPOSED_IN_DOCKERFILE
我想在 docker 下安装我的@vue/cli 4.0.5 应用程序,我找到了这个包 https://hub.docker.com/r/ebiven/vue-cli 假设这就是我需要的(?)我用
修改了 _Docker/docker-compose.ymlweb:
container_name: vtasks_web
build:
context: ./web
dockerfile: Dockerfile.yml
environment:
- APACHE_RUN_USER=www-data
volumes:
- ${APP_PATH_HOST}:${APP_PTH_CONTAINER}
ports:
- 8088:80
working_dir: ${APP_PTH_CONTAINER}
...
vue_cli:
container_name: vtasks_vue_cli
image: ebiven/vue-cli:latest
volumes:
- ${APP_PATH_HOST}:${APP_PTH_CONTAINER}
working_dir: ${APP_PTH_CONTAINER}
command: npm install
构建应用程序并接下来检查日志我没有错误,还创建了 node_modules(我之前删除了它):
但是进入灌木丛我运行
npm run serve
命令,它显示:
ONE Compiled successfully in 10065ms 4:21:52 PM
App running at:
- Local: http://localhost:8080/
It seems you are running Vue CLI inside a container.
Access the dev server via http://localhost:<your container's external mapped port>/
Note that the development build is not optimized.
To create a production build, run npm run build.
所以我运行
http://localhost:8088/
在网络容器中我设置了8088:80 但在浏览器中,我看到 index.html 已打开(按标题和页面内容)但未呈现 js?
什么是有效方式?
修改后的块: 查看 https://github.com/ebiven/docker-vue-cli 上的演示,我明白了 ebiven/docker-vue-cli 用作 Web 容器,因此删除 node_modules 目录并重新制作我的 _Docker/docker-compose.yml :
version: '3.5'
services:
web:
container_name: vtasks_web
image: ebiven/vue-cli
command: npm install
# command: npm install ; npm run serve // I GOT ERROR HERE
# command: npm run serve
build:
context: ./web
dockerfile: Dockerfile.yml
environment:
- APACHE_RUN_USER=www-data
volumes:
- ${APP_PATH_HOST}:${APP_PTH_CONTAINER}
ports:
- "8088:80"
working_dir: ${APP_PTH_CONTAINER}
db:
container_name: vtasks_db
image: mysql:5.7.28
restart: always
environment:
- MYSQL_DATABASE=DockerVTasks
- MYSQL_USER=docker_user
- MYSQL_PASSWORD=4321
- MYSQL_ALLOW_EMPTY_PASSWORD=false
- MYSQL_ROOT_PASSWORD=321
- TZ=Europe/Kiev
volumes:
- ${DB_PATH_HOST}:/var/lib/mysql
adminer:
container_name: vtasks_adminer
image: adminer
restart: always
ports:
- 8089:8080
links:
- db
我看到的结果:
$ docker-compose up -d --build
Building web
Step 1/6 : FROM php:7.3-apache
---> 5af347316d4b
Step 2/6 : RUN apt-get update && apt-get install -y python libfreetype6-dev libwebp-dev libjpeg62-turbo-dev libpng-dev libzip-dev nano mc git-core curl build-essential openssl libssl-dev libgmp-dev libldap2-dev netcat locate && git clone https://github.com/nodejs/node.git && cd node && git checkout v12.0.0 && ./configure && make && make install
---> Using cache
---> b56b2543f6bd
Step 3/6 : RUN npm install cross-env
---> Using cache
---> f8abda742c47
Step 4/6 : RUN docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-webp-dir=/usr/include/ --with-jpeg-dir=/usr/include/
---> Using cache
---> df0636ba5b86
Step 5/6 : RUN docker-php-ext-install gd pdo pdo_mysql zip gmp bcmath pcntl ldap sysvmsg exif && a2enmod rewrite
---> Using cache
---> 307c9f243f02
Step 6/6 : COPY virtualhost.conf /etc/apache2/sites-enabled/000-default.conf
---> Using cache
---> 3c733883faaa
Successfully built 3c733883faaa
Successfully tagged ebiven/vue-cli:latest
Recreating vtasks_web ...
vtasks_db is up-to-date
Recreating vtasks_web
Recreating vtasks_web ... done
serge@athoe:/mnt/_work_sdb8/wwwroot/lar/VApps/vtasks/_Docker$ docker logs --tail=40 vtasks_web
> node-sass@4.13.0 install /var/www/vtasks_docker_root/node_modules/node-sass
> node scripts/install.js
Downloading binary from https://github.com/sass/node-sass/releases/download/v4.13.0/linux-x64-72_binding.node
Download complete
Binary saved to /var/www/vtasks_docker_root/node_modules/node-sass/vendor/linux-x64-72/binding.node
Caching binary to /root/.npm/node-sass/4.13.0/linux-x64-72_binding.node
> core-js@3.6.1 postinstall /var/www/vtasks_docker_root/node_modules/core-js
> node -e "try{require('./postinstall')}catch(e){}"
Thank you for using core-js ( https://github.com/zloirock/core-js ) for polyfilling JavaScript standard library!
The project needs your help! Please consider supporting of core-js on Open Collective or Patreon:
> https://opencollective.com/core-js
> https://www.patreon.com/zloirock
Also, the author of core-js ( https://github.com/zloirock ) is looking for a good job -)
> ejs@2.7.4 postinstall /var/www/vtasks_docker_root/node_modules/ejs
> node ./postinstall.js
Thank you for installing EJS: built with the Jake JavaScript build tool (https://jakejs.com/)
> node-sass@4.13.0 postinstall /var/www/vtasks_docker_root/node_modules/node-sass
> node scripts/build.js
Binary found at /var/www/vtasks_docker_root/node_modules/node-sass/vendor/linux-x64-72/binding.node
Testing binary
Binary is fine
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.11 (node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.11: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
added 1239 packages from 876 contributors and audited 19413 packages in 26.747s
found 0 vulnerabilities
我看到node_modules目录生成了,还需要运行
npm run serve
在
之后npm install
修改块#2:
修改命令为
command: bash -c "npm install && npm run serve"
我得到了下一个没有错误的输出:
$ docker logs --tail=20 vtasks_web
<s> [webpack.Progress] 93% after chunk asset optimization
<s> [webpack.Progress] 93% asset optimization
<s> [webpack.Progress] 94% after asset optimization
<s> [webpack.Progress] 94% after seal
<s> [webpack.Progress] 95% emitting
<s> [webpack.Progress] 95% emitting HtmlWebpackPlugin
<s> [webpack.Progress] 95% emitting CopyPlugin
<s> [webpack.Progress] 98% after emitting
<s> [webpack.Progress] 98% after emitting CopyPlugin
DONE Compiled successfully in 10316ms4:36:18 AM
<s> [webpack.Progress] 100%
App running at:
- Local: http://localhost:8080/
It seems you are running Vue CLI inside a container.
Access the dev server via http://localhost:<your container's external mapped port>/
但是url我要运行哪一个? 在
http://localhost:8080/
我收到错误:
This site can’t be reachedlocalhost
refused to connect.
我尝试为格式设置一些代码: 但我不确定他们叫什么:
your container's external mapped port
?
但是我应该使用哪种语法?
修改块#3
运行
http://localhost:8080/
在我的浏览器中出现错误:
This site can’t be reached
localhost refused to connect.
Checking logs I see : $ docker logs --tail=40 vtasks_web
<s> [webpack.Progress] 87% after chunk id optimization
<s> [webpack.Progress] 87% record modules
<s> [webpack.Progress] 87% record modules RecordIdsPlugin
<s> [webpack.Progress] 87% record chunks
<s> [webpack.Progress] 87% record chunks RecordIdsPlugin
<s> [webpack.Progress] 88% hashing
<s> [webpack.Progress] 88% after hashing
<s> [webpack.Progress] 88% after hashing HotModuleReplacementPlugin
<s> [webpack.Progress] 89% record hash
<s> [webpack.Progress] 89% module assets processing
<s> [webpack.Progress] 90% chunk assets processing
<s> [webpack.Progress] 90% additional chunk assets processing
<s> [webpack.Progress] 90% additional chunk assets processing HotModuleReplacementPlugin
<s> [webpack.Progress] 91% recording
<s> [webpack.Progress] 91% recording HotModuleReplacementPlugin
<s> [webpack.Progress] 92% additional asset processing
<s> [webpack.Progress] 92% chunk asset optimization
<s> [webpack.Progress] 93% after chunk asset optimization
<s> [webpack.Progress] 93% asset optimization
<s> [webpack.Progress] 94% after asset optimization
<s> [webpack.Progress] 94% after seal
<s> [webpack.Progress] 95% emitting
<s> [webpack.Progress] 95% emitting HtmlWebpackPlugin
<s> [webpack.Progress] 95% emitting CopyPlugin
<s> [webpack.Progress] 98% after emitting
<s> [webpack.Progress] 98% after emitting CopyPlugin
DONE Compiled successfully in 11638ms12:10:15 PM
<s> [webpack.Progress] 100%
App running at:
- Local: http://localhost:8080/
It seems you are running Vue CLI inside a container.
Access the dev server via http://localhost:<your container's external mapped port>/
Note that the development build is not optimized.
To create a production build, run npm run build.
但是在我的 _Docker/docker-compose.yml 中我有选项:
ports:
- "8088:80"
实际上我有几个 docker 项目,例如:
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
99bc972f0840 ebiven/vue-cli "docker-php-entrypoi" 32 hours ago Up 8 minutes 0.0.0.0:8088->80/tcp vtasks_web
fcb6d879effa adminer "entrypoint.sh docke" 2 weeks ago Up 8 minutes 0.0.0.0:8089->8080/tcp vtasks_adminer
b0b81c6587bb mysql:5.7.28 "docker-entrypoint.s" 2 weeks ago Restarting (1) 47 seconds ago vtasks_db
端口问题令人困惑...
谢谢!
您需要为 node_modules
目录和 dist
目录创建一个 "named volume",这样这些目录就不会被您的绑定挂载覆盖(这个东西:${APP_PATH_HOST}:${APP_PTH_CONTAINER}
).
This教程解释得更好:
The second is a named volume,
node_modules
. When Docker runs thenpm install
instruction listed in the applicationDockerfile
,npm
will create a newnode_modules
directory on the container that includes the packages required to run the application. The bind mount we just created will hide this newly creatednode_modules
directory, however. Sincenode_modules
on the host is empty, the bind will map an empty directory to the container, overriding the newnode_modules
directory and preventing our application from starting. The namednode_modules
volume solves this problem by persisting the contents of the/home/node/app/node_modules
directory and mounting it to the container, hiding the bind.
为此,您可以在 web
服务下添加两个新卷,并将它们添加到 docker-compose.yml
底部的 volumes
下:
web:
volumes:
- ${APP_PATH_HOST}:${APP_PTH_CONTAINER}
- node_modules:${APP_PTH_CONTAINER}/node_modules
- dist:${APP_PTH_CONTAINER}/dist
volumes:
node_modules:
dist:
我让 VueCLI 在 Docker 中使用以下文件工作:
Dockerfile
:
FROM node:lts-alpine
# install simple http server for serving static content
RUN npm install --quiet -g http-server
# install the vue-cli
RUN npm install --quiet --global \
@vue/cli
# create app directory
RUN mkdir /app
# copy both 'package.json' and 'package-lock.json' (if available)
COPY package*.json /app/
# copy project files and folders to the current working directory (i.e. 'app' folder)
COPY . /app/
# make the 'app' folder the current working directory
WORKDIR /app
# install project dependencies
RUN npm install
# build the app
RUN npm run build
docker-compose.yml
:
version: '3'
services:
web:
build:
context: .
dockerfile: Dockerfile
volumes:
- .:/app
- node_modules:/app/node_modules
- dist:/app/dist
ports:
- "8080:8080"
# uncomment command below to run development version
# command: "npm run serve"
command: "http-server dist"
volumes:
node_modules:
dist:
我 运行 docker-compose up
然后我的应用程序在 http://localhost:8080/
.
第一次更新 Dockerfile
后,请务必重建容器,例如docker-compose up --build
.
我在 docker-compose 文件中的做法是:
command: bash -c "npm install && npm run serve"
- 首先,请检查您的 Dockerfile for vue app。您必须包含 EXPOSE 指令。
- 然后确保您的 docker-compose 正确地将您的主机端口映射到内部 docker 端口
ports:
- LOCAL_PORT:PORT_YOU_EXPOSED_IN_DOCKERFILE