从我昨天的最后一次提交开始,我遇到了一个奇怪的问题,GitLab CI连续失败,错误如下:

$ ssh -i $SSH_PRIVATE_KEY -o StrictHostKeyChecking=no $SERVER_USER@$SERVER_IP "docker run -d -p 8010:80 --name my_project $TAG_LATEST"
docker: Error response from daemon: No command specified.
See 'docker run --help'.
Cleaning up project directory and file based variables
ERROR: Job failed: exit code 125

这是一个react 应用程序,应该是建立和部署到我的服务器.

这是我的Dockerfile美元

FROM node:16.14.0-alpine as build

WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build

FROM nginx:1.19-alpine

COPY --from=build /app/build /usr/share/nginx/html
RUN rm /etc/nginx/conf.d/default.conf
COPY nginx/nginx.conf /etc/nginx/conf.d
EXPOSE 80

CMD ["nginx", "-g", "daemon off;"]

.gitlab-ci.yml个文件中,I具有2个阶段builddeploy.为了更清楚起见,我想彼此分享一下:

stages:
  - build
  - deploy

variables:
  TAG_LATEST: $CI_REGISTRY_IMAGE/$CI_COMMIT_REF_NAME:latest
  DOCKER_DRIVER: overlay2
  DOCKER_TLS_CERTDIR: "/certs"

build_test:
  image: docker:latest
  stage: build
  services:
    - docker:19.03.0-dind
  script:
    - docker build -t $TAG_LATEST .
    - docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN $CI_REGISTRY
    - docker push $TAG_LATEST
  environment:
    name: test
  rules:
    - if: $CI_COMMIT_BRANCH == "develop"
      when: on_success


deploy_test:
  image: alpine:latest
  stage: deploy
  only:
    - develop
  tags:
    - frontend
  script:
    - chmod og= $SSH_PRIVATE_KEY
    - apk update && apk add openssh-client
    - ssh -i $SSH_PRIVATE_KEY -o StrictHostKeyChecking=no $SERVER_USER@$SERVER_IP "docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN $CI_REGISTRY"
    - ssh -i $SSH_PRIVATE_KEY -o StrictHostKeyChecking=no $SERVER_USER@$SERVER_IP "docker pull $TAG_LATEST"
    - ssh -i $SSH_PRIVATE_KEY -o StrictHostKeyChecking=no $SERVER_USER@$SERVER_IP "docker container rm -f my_project || true"
    - ssh -i $SSH_PRIVATE_KEY -o StrictHostKeyChecking=no $SERVER_USER@$SERVER_IP "docker run -d -p 8010:80 --name my_project $TAG_LATEST"
  environment:
    name: test

我执行了以下步骤:

第一次try 在我的服务器上使用docker run命令手动运行映像.结果是一样的!

第二,我将项目从GitLab拉到全新的文件夹中,运行第一个docker build -my_project .命令,然后像在服务器上一样运行.它在我的本地机器上工作.

3.我用ChatGPT重新验证了我的代码库,没有发现错误.

推荐答案

目前,最新的docker版本存在问题.

使用:

image: docker:20.10.22

不是:

image: docker:latest

有关更多详细信息,请查看此链接:https://gitlab.com/gitlab-org/gitlab-runner/-/issues/29593#note_1263383415

Reactjs相关问答推荐

实时收听react前端应用程序中的webhook响应

react 派生状态未正确更新

在Redux工具包查询中,是否可以将标记应用到API切片内的所有端点?

滚动事件监听器在Next.js客户端组件中不触发

在react.js的条形图中获取错误&unfined是不可迭代的

在React Create App TS项目中安装material UI

当列表中的项的顺序改变并且使用唯一键作为它们的索引时,Reaction如何看待呈现方面?

Next.js Next-Auth登录函数重定向到http://localhost:3000/api/auth/error

使用Ionic 7和React 18,如何访问历史对象以在页面之间导航?

如何管理组件列表的复杂状态? (Nextjs/ReactJS)

FabricJS反序列化问题

强制 useEffect 仅运行一次

在 useSelector() 中使用 array.map() 如何导致组件在分派操作时重新渲染?

React - 如何重定向页面以显示数据修改?

Stripe Checkout:是否可以创建不自动续订的订阅?

如何在不重新加载页面的情况下加载新添加的数据?

需要在窗口调整大小时更新 React 组件

下一次导出:未捕获的语法错误:标识符注册表已被声明

添加 React/Redux 组件模板的 VS Code 扩展

useEffect 仅在跟随链接后有效,不适用于直接链接