我有下一个docker-compose.yml文件
version: '2'
services:
# The Application
app:
build:
context: ./
dockerfile: app.dockerfile
working_dir: /var/www/html
volumes:
- ./giftmeabetterplanet:/var/www/html
environment:
- "DB_PORT=3306"
- "DB_HOST=database"
# The Web Server
web:
build:
context: ./
dockerfile: web.dockerfile
working_dir: /var/www/html
links:
- database:mysql
volumes_from:
- app
ports:
- 81:80
environment:
- "WEB_DOCUMENT_ROOT=/var/www/html/public"
# The Database
database:
image: mysql:5.6
volumes:
- dbdata:/var/lib/mysql
environment:
- "MYSQL_DATABASE=homestead"
- "MYSQL_USER=homestead"
- "MYSQL_PASSWORD=secret"
- "MYSQL_ROOT_PASSWORD=secret"
ports:
- "3306"
volumes:
dbdata:
我需要以某种方式使NPM(Node Package Manager)以某种方式访问" Web"容器中的JS和CSS文件。
app.dockerfile
FROM php:7.0.4
RUN apt-get update && apt-get install -y libmcrypt-dev
mysql-client libmagickwand-dev --no-install-recommends
&& pecl install imagick
&& docker-php-ext-enable imagick
&& docker-php-ext-install mcrypt pdo_mysql
web.dockerfile
FROM webdevops/php-apache-dev:ubuntu-16.04
我已经通过扩展Web.dockerfile
尝试了下一步的方法FROM orlandohohmeier/local-npm
FROM webdevops/php-apache-dev:ubuntu-16.04
但是,从" Web"容器中的命令行无法访问NPM。也许我不了解某些概念,但我只想编译我的Stiles,JavaScript文件并从节点模块中复制字体。
最好的问候。伊万
添加到 docker-compose file
npm:
image: node:14
working_dir: /var/www/my_shiny_project
entrypoint: ["npm"]
volumes:
- "./www/:/var/www/my_shiny_project"
用法:
docker-compose run --rm npm install
不要忘记检查两个 Working_dir 和 bolumes
for php7.2这是我在php.dockerfile
中所拥有的 RUN curl -sL https://deb.nodesource.com/setup_8.x | bash -
RUN apt-get install -y nodejs
尝试将其添加到您的web.dockerfile。
RUN apt-get install -y nodejs npm
然后构建您的容器,然后尝试在Web容器中运行节点或NPM
docker-compose run web bash
遵循本教程:https://medium.com/@wiwatsrt/laravel-development-environment-invironment-invironment-invironment-containers-7b173f62f372
设置Docker-Compose时,运行命令:
docker-compose run --rm nodejs npm install