每当我运行composer update
时,我都会尝试运行一些特定于应用程序的命令,例如docker-compose up
,让我的docker-compose.yml文件看起来与此类似
version: '3'
services:
app1:
image: laraedit/laraedit
ports:
- 3000:80
volumes:
- ./appfolder:/var/www/appfolder
如果我在入口点运行我的首次运行命令,它将覆盖默认laraedit / laraedit正在运行的所有命令。 (至少我是这么认为的,因为当我的入口点命令完成时容器总是停止)
我不想打扰laraedit / laraedit启动的过程,我只是想执行一些命令。
如果我没有使用docker-compose,那么我会在本地使用laraedit / laraedit Dockerfile,然后我可以编辑它并在那里的某处添加一个RUN语句。
但是因为我没有Dockerfile,并且我不能在没有放弃容器正常启动的情况下创建一个入口点,所以我不知道如何每次运行这些无聊命令的过程自动化运行docker-compose up
。
我尝试过的事情:
答案 0 :(得分:1)
您需要使用自定义图像扩展laraedit / laraedit图像。 你可以像这样简单地使用Dockerfile:
SELECT
Application.Id,
Application.CreationDateTime,
Application.Status,
[Case].Name AS CaseName
FROM Application
LEFT JOIN [Case] ON Application.CaseId = [Case].Id
WHERE Application.CaseId = 6 AND
Application.Status = 5
ORDER BY Application.CreationDateTime
DESC OFFSET 0 ROWS FETCH NEXT 10 ROWS ONLY
FROM laraedit/laraedit
COPY my_entrypoint.sh /my_entrypoint.sh
RUN chmod +x /my_entrypoint.sh
ENTRYPOINT /my_entrypoint.sh
是一个包含初始化命令并在其末尾调用原始入口点的脚本,例如:
my_entrypoint.sh
通过阅读原始的laraedit Dockerfile
,您可以获得#!/bin/sh
my_init_cmd1
my_init_cmd2
...
/original/entrypoint/script/path
值
我们假设您将上面的2个文件放在docker-compose.yml旁边的/original/entrypoint/script/path
目录中,而不是像这样调整docker-compose.yml:
docker