我将gitlab-ci与共享运行程序一起使用,以便在我的项目中设置CI。这是一个nodeJS API,带有用于对其进行测试的shell脚本和用于安装它的Dockerfile。
我已经尝试通过docker
文件访问服务名称为“ .gitlab-ci.yml
”的正在运行的docker,但是它不起作用。
我想在gitlab-ci的CI中设置2个作业: 1.构建映像并将其推送到gitlab注册表。 2.使用Web API的网址启动test.sh脚本
我目前暂时在.gitlab-ci.yml
中设置了此设置:
default:
image: docker:stable
variables:
DOCKER_HOST: tcp://docker:2375
services:
- docker:dind
before_script:
- docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
stages:
- build
- test
job:build:
stage: build
script: docker build -t registry.gitlab.com/geocube_at_school/content-server . && docker push registry.gitlab.com/geocube_at_school/content-server
job:test:
stage: test
script: docker run -p 8081:8081 -d registry.gitlab.com/geocube_at_school/content-server && ./test.sh http://docker:8081
这里也是我的Dockerfile
,以防万一:
FROM node:latest
RUN apt-get update -y && apt-get upgrade -y
RUN apt-get install apt-utils openssl -y
COPY . /myapp/
EXPOSE 8081
WORKDIR /myapp
RUN npm install
CMD npm start
该脚本仅使用curl来测试已经运行的应用程序上的API端点(这就是为什么我想通过脚本参数提供应用程序地址)。