Cha*_*ngh 3 shell npm laravel docker docker-compose
我正在尝试在Docker的Laravel应用程序中自动安装和编译JavaScript / Vue文件以及相关性。这是一个用于签署留言簿的简单应用程序。
我已经编译了一个php:7.1.12-fpm容器,其中包含所有必需的PHP依赖关系以及Node 8.x软件包。当PHP容器启动时,应该从容器的外壳访问npm 5.6.0。现在,我必须进入此容器并手动运行“ npm install”和“ npm run dev”以安装JavaScript依赖关系并编译Vue文件。
我希望这种情况发生在docker-compose命令的开头。为此,我尝试添加一个Node容器并使其执行这两个命令。这是Node容器的docker-compose.xml:
node:
image: "node:8"
user: "node"
working_dir: /home/node/app
environment:
- NODE_ENV=production
volumes:
- ./web:/home/node/app
expose:
- "8081"
command: npm install && npm run dev
Run Code Online (Sandbox Code Playgroud)
不幸的是,使用上面的docker-compose.xml作为Node容器运行会导致此错误:
node_1 | npm ERR! code EINVALIDTAGNAME
node_1 | npm ERR! Invalid tag name "&&": Tags may not have any characters that encodeURIComponent encodes.
node_1 |
node_1 | npm ERR! A complete log of this run can be found in:
node_1 | npm ERR! /home/node/.npm/_logs/2018-01-28T16_43_49_599Z-debug.log
laravelvuejsguestbook_node_1 exited with code 1
Run Code Online (Sandbox Code Playgroud)
我怀疑我必须以某种方式逃避&&,但是我不确定如何实现这一目标。
我需要任何帮助,以便npm在docker-compose命令启动时安装依赖项并编译Vue文件,我们将不胜感激。
尝试将您的撰写command语句更改为以下内容-
command: bash -c "npm install && npm run dev"
Run Code Online (Sandbox Code Playgroud)
PS-经过一个示例测试,package.json当我们使用bash -c ""&not sh -c ""(默认为compose命令运行)时,它可以正常工作,尽管不确定确切的原因。希望它能对您有所帮助。
| 归档时间: |
|
| 查看次数: |
1275 次 |
| 最近记录: |