【发布时间】:2016-12-15 12:10:02
【问题描述】:
我在配置 gitlab-ci 和 gitlab-runner 时发现了一个问题。
我希望在一台服务器上拥有几个独立的应用程序环境,在其他外部端口上运行,但使用相同的 docker 映像。
我想要达到的目标
-
deploy-dev在容器中的端口80上运行 Apache,但在外部端口81 -
deploy-rc在容器中的端口80上运行 Apache,但在外部端口82
我看到docker run 有--publish 参数,它允许端口绑定,如80:81,但不幸的是我在gitlab-ci.yml 或gitlab-runner 的config.toml 中找不到任何选项来设置它论据。
gitlab-runner 运行的 Docker 中有没有办法实现端口绑定?
我的gitlab-ci.yml:
before_script:
# Install dependencies
- bash ci/docker_install.sh > /dev/null
deploy:
image: webdevops/php-apache:centos-7-php56
stage: deploy
only:
- dockertest
script:
- composer self-update
- export SYMFONY_ENV=dev
- composer install
- app/console doc:sch:up --force
- app/console doc:fix:load -e=dev -n
- app/console ass:install
- app/console ass:dump -e=dev
tags:
- php
【问题讨论】:
-
您能否准确说明您是如何使用 gitlab runner 进行部署的?你的 gitlab-ci.yml 目前有什么?
-
@Matthew 添加了我的
gitlab-ci.yml的内容 -
谢谢。实际的 docker 工作在做什么仍然不明显——是在
app/console doc:sch:up步骤中吗?这是你的剧本吗?它有什么作用? -
其实是apache/php应用的部署脚本。它正在创建所有需要配置的东西,然后我只依赖 apache,它在集合中并在 docker 映像中运行
-
啊哈 - 所以基本上该脚本的最后一部分会永远运行?或者至少在某些事情阻止它之前?
标签: docker gitlab gitlab-ci gitlab-ci-runner