В чем причина «докер: ответ на ошибку от демона: команда не указана»?

Начиная с моего последнего вчерашнего коммита, я столкнулся со странной проблемой, когда 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 у меня есть 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

Я сделал следующие шаги:

1-й попытался запустить образ с помощью команды docker run вручную на моем сервере. Результат был тот же!

2-й я вытащил проект из gitlab в новую папку и запустил сначала команду docker build -my_project ., а затем, как я сделал это на сервере. Это работало на моей локальной машине.

3-й. Я повторно проверил свою кодовую базу с помощью

Версия Docker на сервере и на локальной машине Docker version 20.10.22, build 3a2c30b

Elvin Huseynov 04.02.2023 06:29

Та же проблема для моего случая.

xpcrts AKA Rithisak 04.02.2023 09:08

У меня те же проблемы, никаких изменений в конфигурации, но вдруг я получаю это сообщение об ошибке. Однако базовым образом для меня является «openjdk: 8». Очень странно ...

Andreas Brauchle 05.02.2023 09:08

Вы видите такое же поведение, если вы вытащите образ локально и запустите его? Можете ли вы поделиться изображением с нами?

larsks 05.02.2023 12:26
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
2
4
401
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

У меня такая же ошибка уже через 3 дня. Я также использую gitLab CI.

Я решил проблему, добавив эту строку в свой файл docker-compose.yml (в разделе задействованной службы)

command: ["nginx", "-g", "daemon off;"]

Я пока не нахожу первопричину проблемы.

Надеюсь, это поможет.

Ответ принят как подходящий

В настоящее время существует проблема с последней версией докера.

Использовать:

image: docker:20.10.22

вместо :

image: docker:latest

Для более подробной информации перейдите по этой ссылке: https://gitlab.com/gitlab-org/gitlab-runner/-/issues/29593#note_1263383415

Другие вопросы по теме