[英]Docker-compose and node container as not the primary one
我是Docker的新手,並且已經成功設置了PHP / Apache / MySQL。 但是一旦我嘗試添加node
容器(為了使用npm
),它總是在組合后關閉容器。 是的,我知道我可以直接使用node
,而無需涉及docker
,但是我發現它對自己很有用。
至於composer
,我想在node
容器中使用卷,以便將node_modules
持久node_modules
在src
文件夾中。
我使用docker-compose up -d --build
命令將其組成。 在編寫過程中,它沒有顯示任何錯誤(即使node
容器似乎也已成功構建)。 如果有幫助,我可以共享日志文件(它太大了,無法在此處包含它)。
PS。 如果您發現可以改進的地方,請告訴我。 先感謝您!
Docker文件
FROM php:7.2-apache
RUN apt-get update
RUN a2enmod rewrite
RUN apt-get install zip unzip zlib1g-dev
RUN docker-php-ext-install pdo pdo_mysql mysqli zip
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
RUN composer global require laravel/installer
ENV PATH="~/.composer/vendor/bin:${PATH}"
docker-compose.yml
version: '3'
services:
app:
build:
.
volumes:
- ./src:/var/www/html
depends_on:
- mysql
- nodejs
ports:
- 80:80
mysql:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: qwerty
phpmyadmin:
image: phpmyadmin/phpmyadmin
links:
- mysql:db
ports:
- 8765:80
environment:
MYSQL_ROOT_PASSWORD: qwerty
PMA_HOST: mysql
depends_on:
- mysql
nodejs:
image: node:9.11
volumes:
- ./src:/var/www/html
由於這個 Dockerfile您使用的節目,你實際上並沒有那么盡快乳寧在節點容器中的任何應用程序,它建立並啟動-它關閉,因為它沒有其他事情可做。
解決方案很簡單-提供一個您要運行到容器中並運行的應用程序,如下所示:
我已經修改了您的撰寫文件的一部分
nodejs:
image: node:9.11
command: node app.js
volumes:
- ./src:/var/www/html
其中app.js
是編寫應用程序的腳本,您可以自由使用自己的名稱。
編輯提供您要求的小改進
您不會等到數據庫完全初始化之后( depends_on
無法執行此操作),因此請在此處查看我之前針對該問題的答案之一
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.