Образ Docker не обновляется в реестре контейнеров Azure через gitlab

У меня возникла проблема с моими образами докеров, которые загружаются в реестр контейнеров Azure через gitlab, но они, похоже, не обновляют текущий код, но локально они работают.

В чем может быть проблема с моим файлом .gitlab-ci.yml?

image:
  name: docker/compose:1.25.4
  entrypoint: [""]

services:
  - docker:dind

variables:
  DOCKER_HOST: tcp://docker:2375
  DOCKER_DRIVER: overlay2

stages:
  - develop

build-dev:
  stage: develop
  before_script:
    - export IMAGE=$CI_REGISTRY/$CI_PROJECT_NAMESPACE/$CI_PROJECT_NAME
    - apk add --no-cache --upgrade bash
  script:
    - apk add --no-cache bash
    - chmod +x ./setup_env.sh
    - bash ./setup_env.sh
    - docker login $AZ_REGISTRY_IMAGE -u $AZ_USERNAME_REGISTRY -p $AZ_PASSWORD_REGISTRY
    - docker pull $AZ_REGISTRY_IMAGE/proj:tag || true
    - docker-compose build --no-cache
    - docker tag $AZ_REGISTRY_IMAGE/proj:tag $AZ_REGISTRY_IMAGE/pixsar:$(date +%Y%m%d%H%M)
    - docker push $AZ_REGISTRY_IMAGE/proj:$(date +%Y%m%d%H%M)
    - docker system prune -af
  only:
    - develop
    - fix-docker-1

Дополнительные файлы:

Докерфайл

# Use an official Python runtime as a parent image
FROM python:3.10

# Set environment variables
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1

# Set the working directory in the container
WORKDIR /app

# Install dependencies
COPY requirements.txt /app/
RUN pip install --no-cache-dir -r requirements.txt

# Copy the project code into the container
COPY . /app/

# Expose port 8000 to the outside world
EXPOSE 8001

# Command to run the startup script
CMD ["./startup.sh"]

# Command to run the application
CMD ["daphne", "app.asgi:application", "--port", "8001", "--bind", "0.0.0.0"]

и файл docker-compose:

version: '3.3'

services:
  web:
    build:
      context: .
      dockerfile: Dockerfile
    ports:
      - "8001:8001"
    env_file:
      - .env
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
0
0
98
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Это сработало для меня.

  • Примечание. — Если вы используете docker-composeversion 1, вы получите предупреждение, но не ошибку, а также не создаст новое обновленное изображение.
  • Убедитесь, что в конвейере gitlab вы не получаете ошибку.
  • Для справки проверьте этот документ.

Я извлек образ nginx и отправил его в реестр контейнеров Azure.

.gitlab-ci.yml:

docker-build:
 # Use the official docker image.
 image:  docker:cli
 stage:  build
 services:
 -  docker:dind

 script:
 -  docker  pull  nginx
 -  docker  login  vshandilyaacr.azurecr.io  -u  vshandilyaacr  -p  xxxxxxxxxxxxxx
 -  docker  tag  nginx  vshandilyaacr.azurecr.io/azuregitlab:docker
 -  docker  push  vshandilyaacr.azurecr.io/azuregitlab:docker

 rules:
 -  if:  $CI_COMMIT_BRANCH
 exists:
 -  Dockerfile

OUTPUT:

Спасибо за ответ, но как веб-приложение будет автоматически выбирать эти новые теги? Есть идеи

Lutaaya Huzaifah Idris 30.04.2024 13:58

Я также добавил файлы докеров, может быть, вы посмотрите

Lutaaya Huzaifah Idris 30.04.2024 14:03

@LutaayaHuzaifahIdris Если имена ваших тегов всегда разные после обновления, то есть два способа обновить последний обновленный тег в веб-приложении: вы можете добавить команды добавления для обновления тегов в веб-приложении или изменить их вручную в веб-приложении-> развертывание. центр

Vivek Vaibhav Shandilya 30.04.2024 14:11

Если имя вашего изображения и имя тега остались прежними, нет необходимости вносить изменения в ваше веб-приложение. через некоторое время веб-приложения автоматически обновятся до нового изображения. но это занимает некоторое время

Vivek Vaibhav Shandilya 30.04.2024 14:13

@LutaayaHuzaifahIdris, если вы используете одно изображение, то нет необходимости создавать docker-compose. Dockerfile достаточно.

Vivek Vaibhav Shandilya 30.04.2024 14:14

Хорошо, имеет смысл, позвольте мне попробовать и посмотреть

Lutaaya Huzaifah Idris 30.04.2024 14:14

Давайте продолжим обсуждение в чате.

Lutaaya Huzaifah Idris 30.04.2024 14:28

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

Похожие вопросы

Почему я получаю сообщение «400 — неверный запрос» при запросе токена доступа из Azure B2C с использованием потока ROPC?
Ошибка PermissionDenied API пользовательского зрения Azure при использовании define_image в Python
Документы OpenApi не создаются для функций Azure
Устойчивая функция Azure с использованием модели программирования Python V2 без вызова Activity_trigger
Уменьшите CosmosDB до менее 10 000 ЕЗ/с. Сколько времени это займет?
Как исправить внутреннюю ошибку: ожидаемое значение не должно быть ни нулевым, ни неопределенным: functionName при создании проекта функций Azure?
Невозможно увидеть мои сообщения журнала ниже, чем «Предупреждение» на Azure Monitor
Сценарий установки docker bash не работает при использовании в качестве пользовательских данных для виртуальной машины Azure
Частные и сервисные конечные точки вместе
CosmosDB не разрешает бессерверные возможности NoSQL, он говорит, что я должен использовать PerformanceMode