首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否有一种更容易的方法来测试PHP源代码在多平台上使用Docker映像?

是否有一种更容易的方法来测试PHP源代码在多平台上使用Docker映像?
EN

Stack Overflow用户
提问于 2018-02-22 09:19:35
回答 1查看 147关注 0票数 0

我正在PHP源代码上执行安全性测试。脚本的功能高度依赖于底层基础结构,因为它对Linux、OSx和Windows以及PHP5.x、PHP7.x、MySQL 4.x和5.x进行了优化。此外,还有可能使用像SQLite这样的不同的数据库后端。

为了测试特定的功能,我编写了一些很好的测试。我想重用这个测试,并在不同的环境中自动运行我的测试。我想用码头来做这个。但我对码头很陌生。虽然我在Bash脚本方面很在行。我对现有的容器和可能性做了一些研究。但似乎没有一种容易的方法来获得所需的容器。

现在,让我们忘掉OSx和Windows,只关注Linux。让事情变得更简单。在我理想的场景中,我在自己的端口上启动了几个码头集装箱,在不同的基础设施上运行相同的软件,比如:

  • Linux,Apache2.x,PHP5.x,MySQL 4.x
  • Linux,Apache2.x,PHP5.x,MySQL 5.x
  • Linux,Apache2.x,PHP7.x,MySQL 4.x (如果可能的话)
  • Linux,Apache2.x,PHP7.x,MySQL 5.x
  • Linux,Apache2.x,PHP5.x,SQLite
  • Linux,Apache2.x,PHP7.x,SQLite

最好有一个轻量级的Linux发行版,比如Arch或Alpine。

我刚刚用Ubuntu作为发行版完成了一些成功的测试,但在我自己编写所有这些Docker映像之前,我想知道是否没有更容易的解决方案来启动和运行这些映像。

是否有更简单的方法在多平台上使用Docker映像测试PHP源代码?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-22 10:49:11

我认为您不能跳过构建每个环境的过程。尽管如此,你可以使用一些预建的图像从码头枢纽加快速度。

我会创建以下结构:

代码语言:javascript
复制
|-- test.sh
|-- docker-compose.yml
|-- php5.X
|   `-- Dockerfile
|-- php7.X
    `-- Dockerfile

在每个Dockerfile中,如果您需要定制它们,您可以使用基本映像并安装所需的一切。

下面是一件棘手的事情:

docker-compose.yml

代码语言:javascript
复制
version: '3'
services:
  db:
    image: mysql:${MYSQL_VERSION}
    environment:
      - MYSQL_ROOT_PASSWORD=secret
  web:
    build:
      context: .
      dockerfile: php${PHP_VERSION}/Dockerfile
    depends_on:
      - db

通过这种方式,您将根据环境变量运行不同的版本,因此您可以轻松地在脚本中这样做:

test.sh

代码语言:javascript
复制
export MYSQL_VERSION=5.6
export PHP_VERSION=7.1

docker-compose up --abort-on-container-exit

export MYSQL_VERSION=5.5
export PHP_VERSION=5.6

docker-compose up --abort-on-container-exit

...
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48923607

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档