Конвейер Jenkins не создает том postgresql_data, но запуск docker compose up -d commad вручную создает тома
Я довольно новичок в docker, docker-compose, jenkins и во всей концепции CI-CD. Поэтому, возможно, я упускаю очень простой момент. Мое приложение - это веб-приложение django с postgresql и nginx. Если я запускаю docker compose build и docker compose up -d, запускаются 3 контейнера и создаются тома docker без каких-либо проблем. Теперь я пытаюсь запустить эти 3 контейнера с помощью jenkins. Я клонирую репо моего приложения в jenkins и запускаю docker compose build и docker compose up -d в моем конвейере. Мое приложение работает, статический том создан, но докерный том postgresql_data не создан и пропадает, если я перезагружаю хост-машину
Я думал, что это может быть связано с правами пользователя, но статический том создается той же самой задачей jenkins. Заранее спасибо.
jenkinsfile
pipeline {
agent {
node {
label 'agent-compose'
}
}
environment{
DOCKERHUB_CREDENTIALS = credentials('DockerHub')
}
stages {
stage('Build') {
steps {
sh 'docker compose build'
echo 'Docker compose build is Completed, these images are created:'
}
}
stage('Run The Services') {
steps {
sh 'docker compose up -d'
}
}
stage('Login To Docker Hub') {
steps {
sh 'echo $DOCKERHUB_CREDENTIALS_PSW | docker login -u $DOCKERHUB_CREDENTIALS_USR --password-stdin'
echo 'Login completed'
}
}
stage('Push To Docker') {
steps {
sh 'docker compose push'
echo 'Push completed'
}
}
}
post{
always{
sh 'docker logout'
}
}
}
docker-compose.yml
version: '3.8'
services:
app:
image: myrepo/app:latest
build: .
# command: gunicorn PrjMovies.wsgi:application --bind 0.0.0.0:8000
volumes:
#- .:/website
- static:/static
ports:
- 8000:8000
env_file:
- .env
depends_on:
- db
db:
image: postgres:15.1-alpine
volumes:
- ./postgres_data:/var/lib/postgresql/data/
ports:
- 5432:5432
environment:
- POSTGRES_DB=prjmoviesdb
- POSTGRES_USER=prjmoviesadm
- POSTGRES_PASSWORD=MyPassWhatever
nginx:
image: myrepo/nginx:latest
build: ./nginx
volumes:
- static:/static
ports:
- 80:80
depends_on:
- app
volumes:
static:
postgres_data:
dockerfile
FROM python:3.8.9-alpine
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONNUNBUFFERED 1
WORKDIR /website
RUN pip install --upgrade pip
#psycopg2 dependencies installation
RUN apk update
RUN apk add postgresql-dev gcc python3-dev musl-dev libc-dev linux-headers
COPY ./requirements.txt .
RUN pip install -r requirements.txt
COPY . .
COPY ./entrypoint.sh /
ENTRYPOINT [ "sh", "/entrypoint.sh" ]
entrypoint.sh
python manage.py collectstatic --no-input
gunicorn PrjMovies.wsgi:application --bind 0.0.0.0:8000