我将docker用于laravel项目的开发和生产。我用于开发和生产的dockerfile略有不同。例如,我在开发环境中将本地目录安装到docker容器中,因此我不需要为代码中的每个更改进行docker构建。
由于挂载目录仅在运行docker容器时可用,因此无法在开发文件中将诸如“ composer install”或“ npm
install”之类的命令放入dockerfile中。
目前,我正在管理两个docker文件,有什么方法可以使用单个docker文件来执行此操作,并通过发送参数来确定执行docker build时要运行的命令。
我想要实现的是
在docker文件中
...
IF PROD THEN RUN composer install
...
在Docker构建期间
docker build [PROD] -t mytag .
您可以使用两个不同的Dockerfile。
# ./Dockerfile (non production)
FROM foo/bar
MAINTAINER ...
# ....
还有第二个:
# ./Dockerfile.production
FROM foo/bar
MAINTAINER ...
RUN composer install
在调用build命令时,您可以告诉它应该使用哪个文件:
$> docker build -t mytag .
$> docker build -t mytag-production -f Dockerfile.production .
我使用docker为laravel项目开发和生产。我有一个稍微不同的dockerfile用于开发和生产。例如,我在开发环境中将本地目录装载到docker容器中,这样我就不需要为代码中的每个更改进行docker构建。 由于挂载目录只有在运行docker容器时才可用,因此我无法将“composer install”或“npm install”之类的命令放入dockerfile中进行开发。 目前,我正在
问题内容: 我有2个Dockerfile,1个用于dev,1个用于prod: 产品: 和DEV: 我想将这两个合并为一个,因为维护2个Dockerfile是一个坏习惯 主要区别在于,在开发人员中,我从事实用的图像工作,而在产品中,我从事图像工作,这大大减少了二进制文件的大小。 看来我可以在Dockerfile中使用多个阶段,并在构建时指定阶段名称: 但是,如果这样做,我不知道如何在第一阶段有条件地
问题内容: 我一直在开发一个基本的应用程序。现在在部署阶段,很明显,我需要本地设置和生产设置。 很高兴知道以下内容: 如何最好地应对开发和生产设置。 如何仅在开发环境中保留django-debug-toolbar之类的应用程序。 开发和部署设置的其他任何技巧和最佳做法。 问题答案: 该DJANGO_SETTINGS_MODULE环境变量,其设置文件Django的控件将加载。 因此,你将为各自的环境
目标 建立一个lesson3项目,解决上一节lesson2遗留下来的—即开发环境打包到生产环境的问题。 知识点 1、process.env.NODE_ENV:node运行环境变量。 课程内容 process.env.NODE_ENV是node运行时的全局变量,node服务端中的任一js文件中都可以拿到它的值,先来试试是否真的能获取到值 先新建一个lesson3的项目,再创建一个test.js文件
我试图在Grails 2.2.4中采用Quartz插件(:Quartz:1.0.1),并试图弄清楚如何允许开发和测试使用不同于生产所需的进度表,而不必更改部署到每个进度表的代码。 以下是我的经验。 我正在使用一个JDBC JobStore和Quartz Monitor插件(:Quartz-Monitor:1.0)。所以我的工作是这样定义的: 当我运行Grails应用程序时,将为作业设置触发器,并将
问题内容: 用于express.js环境。有什么建议? 问题答案: 在运行您的应用之前,您可以在控制台中执行此操作, 或者,如果您在Windows中,则可以尝试以下操作: 或者您可以这样运行您的应用程序: 您也可以在js文件中进行设置: 但是我不建议在运行时文件中执行此操作,因为在服务器中打开VIM并将其更改为生产环境并不容易。您可以在目录中创建config.json文件,并且每次您的应用运行时,