gpt4 book ai didi

mysql - 从 dockerfile 运行项目依赖项命令

转载 作者:行者123 更新时间:2023-11-29 11:00:34 26 4
gpt4 key购买 nike

我有一个 Laravel 项目,需要:

  • mysql数据库镜像
  • mongo 数据库镜像
  • 依赖项:npm、composer、gulp、bower

所以我创建了一个包含 3 个服务的 docker-compose.yml:

version: '2.0'

services:
db-mysql:
image: mysql
environment:
- "MYSQL_DATABASE=app_db"
- "MYSQL_USER=db_user"
- "MYSQL_PASSWORD=nutella"
- "MYSQL_ROOT_PASSWORD=choco"
db-mongo:
image: mongo
app:
volumes:
- C:\Users\svirl\Documents\workspace\app-web:/var/www/html/:rw
build: app
links:
- db-mysql
- db-mongo
ports:
- 32772:80
depends_on:
- db-mysql
- db-mongo

好的,对于我的应用程序,我有一个带有 Dockerfile 的构建:

FROM php:5.6-apache
WORKDIR /var/www/html/

RUN apt-get update

RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
RUN composer install #*
RUN apt-get install npm
RUN npm install #*
RUN npm install -g bower
RUN bower install --allow-root
RUN npm install -g gulp
RUN gulp

但是,当然,一些像 #* 这样的命令将无法工作,因为 VOLUME 尚未安装,文件还不存在,并且会抛出错误,如下所示:

Composer could not find a composer.json file in /var/www/html

那么针对这种情况有哪些解决方案呢?为了运行我的项目,我需要在创建容器时运行这些命令。

最佳答案

使用命令(composer install、npm install...)编写 shell 脚本,并将该脚本设置为 ENTRYPOINT在您的 Dockerfile 中。

关于mysql - 从 dockerfile 运行项目依赖项命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42364112/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com