Elv*_*nov 3 docker reactjs gitlab-ci
从昨天的最后一次提交开始,我遇到了一个奇怪的问题,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
Run Code Online (Sandbox Code Playgroud)
这是一个 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;"]
Run Code Online (Sandbox Code Playgroud)
在.gitlab-ci.yml文件中我有 2 个阶段build和deploy. 为了更清楚起见,我想分享一下:
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
Run Code Online (Sandbox Code Playgroud)
我执行了以下步骤:
第一次尝试docker run在我的服务器中使用命令手动运行图像。结果是一样的!
第二,我将项目从 gitlab 拉到全新的文件夹中,然后运行第一个docker build -my_project .命令,就像我在服务器中所做的那样。它在我的本地机器上运行。
第三,我使用 ChatGPT 重新验证了我的代码库,没有发现错误。
目前最新的 docker 版本存在问题。
使用:
image: docker:20.10.22
Run Code Online (Sandbox Code Playgroud)
代替 :
image: docker:latest
Run Code Online (Sandbox Code Playgroud)
有关更多详细信息,请查看此链接:https://gitlab.com/gitlab-org/gitlab-runner/-/issues/29593#note_1263383415
| 归档时间: |
|
| 查看次数: |
9692 次 |
| 最近记录: |