附上我的(持续更新中)
.gitlab-ci.yaml
stages:
- test
job_test:
stage: test
tags:
- image
script:
- CI_TEMP_PORT=$[65535-CI_MERGE_REQUEST_ID]
- CI_TEMP_RANDOM=test
- CI_TEMP_TEST_DOMAIN=${CI_MERGE_REQUEST_SOURCE_BRANCH_NAME}"-"${CI_MERGE_REQUEST_ID}"."${CI_TEMP_RANDOM}"."${TEST_DOMAIN}
- CI_TEMP_CONTAINER_NAME=${CI_PROJECT_NAMESPACE}"-"${CI_PROJECT_NAME}"-"${CI_MERGE_REQUEST_SOURCE_BRANCH_NAME}"-"${CI_MERGE_REQUEST_ID}
- docker stop $CI_TEMP_CONTAINER_NAME && docker rm $CI_TEMP_CONTAINER_NAME
- docker build -t workerman/thinkphp:v1 .
- docker run --name $CI_TEMP_CONTAINER_NAME --restart=always -p $CI_TEMP_PORT:5001 -d workerman/thinkphp:v1
- |
cat > /etc/nginx/conf.d/${CI_TEMP_TEST_DOMAIN}.conf <<EOF
upstream ${CI_TEMP_TEST_DOMAIN}-upstream{
server 127.0.0.1:$CI_TEMP_PORT;
}
server {
listen 80;
server_name ${CI_TEMP_TEST_DOMAIN};
access_log /var/log/nginx/${CI_TEMP_TEST_DOMAIN}-access.log;
error_log /var/log/nginx/${CI_TEMP_TEST_DOMAIN}-error.log;
location / {
proxy_pass_header Server;
proxy_set_header Host \$http_host;
proxy_set_header X-Real-IP \$remote_addr;
proxy_set_header X-Scheme \$scheme;
proxy_pass http://${CI_TEMP_TEST_DOMAIN}-upstream;
}
}
EOF
- systemctl reload nginx
- echo $CI_TEMP_TEST_DOMAIN
only:
- merge_requests
Dockerfile
FROM registry.cn-hangzhou.aliyuncs.com/dake/php:v1
COPY . /var/www
WORKDIR /var/www
EXPOSE 5001
CMD ["php", "think", "worker"]