У меня возникла проблема с моими образами докеров, которые загружаются в реестр контейнеров 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


Это сработало для меня.
- Примечание. — Если вы используете
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:Я также добавил файлы докеров, может быть, вы посмотрите
@LutaayaHuzaifahIdris Если имена ваших тегов всегда разные после обновления, то есть два способа обновить последний обновленный тег в веб-приложении: вы можете добавить команды добавления для обновления тегов в веб-приложении или изменить их вручную в веб-приложении-> развертывание. центр
Если имя вашего изображения и имя тега остались прежними, нет необходимости вносить изменения в ваше веб-приложение. через некоторое время веб-приложения автоматически обновятся до нового изображения. но это занимает некоторое время
@LutaayaHuzaifahIdris, если вы используете одно изображение, то нет необходимости создавать docker-compose. Dockerfile достаточно.
Хорошо, имеет смысл, позвольте мне попробовать и посмотреть
Давайте продолжим обсуждение в чате.
Спасибо за ответ, но как веб-приложение будет автоматически выбирать эти новые теги? Есть идеи