簡體   English   中英

從 Gitlab CI 作業連接到服務

[英]Connecting to a service from a Gitlab CI job

我正在嘗試在使用 React 前端、Java Spring92469BD9381972866FZ393819Spring978669BD9ECEE5 后端的 gitlab ci 中運行 e2e 測試

.gitlab-ci -config 的相關部分如下:

variables:
  IMAGE_NAME: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG
  FF_NETWORK_PER_BUILD: 1

docker-backend-build:
  image: docker:latest
  services:
    - docker:dind
  stage: package
  dependencies:
    - backend-build
  script:
  - docker build -t registry.gitlab.com/repo-name .
  - docker tag registry.gitlab.com/repo-name $IMAGE_NAME
  - docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN registry.gitlab.com
  - docker push $IMAGE_NAME

end-to-end-test:
  stage: integration-test
  image: node:latest
  services:
    - name: postgres:9.6
    - name: $IMAGE_NAME
      alias: backend
  variables:
    DB_USERNAME: postgres
    DB_PASSWORD: postgres
    JDBC_CONNECTION_STRING: 'jdbc:postgresql://postgres:5432/database?stringtype=unspecified'
  dependencies:
    - frontend-build
  script:
    - cd frontend
    - yarn start:ci & ./node_modules/wait-on/bin/wait-on http://backend:9070/api/health http://localhost:3000
    - yarn run cy:run
  artifacts:
    when: always
    paths:
      - frontend/cypress/videos/*.mp4
      - frontend/cypress/screenshots/**/*.png
    expire_in: 1 day

后端的 Dockerfile 如下:

FROM tomcat:latest
ADD backend/target/server.war /usr/local/tomcat/webapps/
RUN sed -i 's/port="8080"/port="9070"/' /usr/local/tomcat/conf/server.xml
EXPOSE 9070
CMD ["catalina.sh", "run"]

server.war是在 CI 管道的早期階段創建的。

server.war設置為監聽端口 9070,Dockerfile 也成功地將 Tomcat 端口更改為 9070。 由於FF_NETWORK_PER_BUILD -flag,Tomcat 實例能夠通過postgres:5432連接到 postgres 實例,但由於某種原因,此腳本永遠掛在wait-on http://backend:9070/api/health命令上即使服務器已啟動並正在運行,它也無法連接到后端:9070。 (並且存在健康端點)。 服務器沒有收到任何它正在嘗試連接的指示。

我可能做錯了什么? 我也嘗試連接到http://localhost:9070/api/health但這也不起作用。

我的答案是簡單地改變 Dockerfile 如下:

- ADD backend/target/server.war /usr/local/tomcat/webapps/
+ ADD backend/target/server.war /usr/local/tomcat/webapps/ROOT.war

因為沒有它,服務器實際上正在監聽http://backend:9070/api/health/server 傻我。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM