【发布时间】:2017-12-15 12:43:33
【问题描述】:
我一直在尝试将我的 php wev 应用程序(基于 laravel 构建)容器化,但遇到了一些问题
首先我发现容器在执行命令后退出,所以我将构建脚本移动到不同的容器(迁移和作曲家安装)
我制作了一个名为 init.sh 的脚本,其中包含构建指令,但每当我从 docker-compose.yml 中的 command 运行它们时,我都没有得到这样的文件或目录。
这是我的 dockerfile
FROM nimmis/apache-php7
COPY apache_default /etc/apache2/sites-available/000-default.conf
RUN a2enmod rewrite
RUN service apache2 restart
这是我的 docker-compose.ym
version: "3"
volumes:
db-data:
external: false
services:
db:
image: mysql/mysql-server
env_file: .env
volumes:
- db-data:/var/lib/mysql-server
migrations:
build: .
env_file: .env
volumes:
- .:/var/www/html/books
depends_on:
- app
command:
# - /var/www/html/books/artisan migrate
# - chmod 777 /var/www/html/init.sh
- /var/www/html/books/init.sh
# - /var/www/html/init.sh
environment:
- ALLOW_OVERRIDE=true
app:
build: .
env_file: .env
volumes:
- .:/var/www/html/books
ports:
- "8081:80"
depends_on:
- db
environment:
- ALLOW_OVERRIDE=true
注释部分是正确运行脚本的不同尝试。
我正在尝试使用 docker 工具箱在 Windows 10 上运行它
我做错了什么?这是正确的方法吗?
【问题讨论】:
-
它说没有这样的文件是哪一个?
-
Dockerfile 中有什么?什么是 init.sh?
-
我已经更新了我的问题...... @JayBlanchard 迁移一个说没有这样的文件它试图运行命令
标签: php laravel docker docker-compose containers