Konstantin
А шо в дмесге ?
Спасибо тебе, милый человек. Посмотрел dmesg - а там "upper fs does not support RENAME_WHITEOUT". А дальше уже в доках, что если драйвер 'overlay2', то в нем rename(2) работает только если и исходная и целевая директории находятся в верхнем слое. Иначе будет ошибка 'cross device link not permitted', которую я и получаю.
Теперь мне надо решить, что с этим делать, то ли overlay2 поменять на какой-то другой драйвер, то ли еще что-то. Сам бы ни за что не догадался.
Henry
Добрый вечер. Кто-нибудь может помочь с этой ошибкой:
Is the server running on that host and accepting TCP/IP connections?
bot_app_name | connection to server at "localhost" (::1), port 5432 failed: Cannot assign requested address
bot_app_name | Is the server running on that host and accepting TCP/IP connections?
bot_app_name |
Владимир
Henry
Владимир
Нужно посмотреть строку подключения к бд в приложении. Поменять там localhost на db
Henry
Konstantin
Henry
Konstantin
вместо postgres указывай db
Konstantin
по имени сервиса будет обращаться, и надо сеть создать для них
Владимир
Konstantin
или компоуз сам создаёт сеть ?
Konstantin
не помню
Владимир
Владимир
://{login}:{password}@db:5432/postgres"
Владимир
То что левее, так и оставь как у тебя
Konstantin
postgresql://user:password@server:5432/database
Henry
изменил compose на такое и изменил подключение к бд на db:5432, вылезает ошибка Error response from daemon: Head "https://registry-1.docker.io/v2/library/db/manifests/15": EOF
Владимир
верни image как было
Владимир
тебе питон нужно править
Henry
та же самая ошибка, а когда отправляю post запрос вылезает это:
sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: No such file or directory
bot_app_name | Is the server running locally and accepting connections on that socket?
bot_app_name |
Владимир
Henry
Владимир
Символ собаки переставь левее, перед db
Henry
Henry
Владимир
Ну смотри, нашел простейший докер-компос для питона + пг
version: '3'
services:
python:
image: python:latest
command: python
stdin_open: true
tty: true
depends_on:
- pgdb
pgdb:
image: postgres
restart: always
environment:
- POSTGRES_DB=postgres
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=postgres
container_name: pgdb
volumes:
- pgdbdata:/var/lib/postgresql/data/
adminer:
image: adminer
restart: always
ports:
- 8080:8080
volumes:
pgdbdata: null
Владимир
Имя хоста с бд резолвится все ок
Владимир
Порт постгре тоже открыт и доступен по TCP
Henry
проблема была в том, что надо было в настройках alembic тоже вместо localhost указать db. Я тупой сорян. Спасибо за помощь огромное!
Владимир
Make
Коллеги, есть кто-нибудь, кто хорошо разбирается в Kaniko, Docker и Gitlab CI?
У меня просто ситуация следующая: есть файлы проекта, который завернут в Docker. Vue, Django, Nginx. Eсть два .yml файла для gitlab-ci. И если содержимое файла .gitlab-ci-backend я еще как-то понимаю, то происходящее в файле для frontend не понимаю совсем. Может кто-нибудь помочь понять, что там происходит и зачем это надо вообще?
Peter
Make
Файлы-то покажите
# Set up the docker container for build docker images
image: docker:stable-dind
# CI stages
stages:
- build
- deploy
# Prerequirements
.build:
stage: build
image:
name: gcr.io/kaniko-project/executor:v1.8.1-debug
entrypoint: [""]
before_script:
- |
echo "{\"auths\":{\"${REGISTRY}\":{\"auth\":\"$(printf "%s:%s" "${REGISTRY_USERNAME}" "${REGISTRY_PASSWORD}" | base64 | tr -d '\n')\"}}}" > /kaniko/.docker/config.json
echo "$ENV" > .env
script:
- |
/kaniko/executor --context $CI_PROJECT_DIR \
--dockerfile $CI_PROJECT_DIR/Dockerfile \
--destination $REGISTRY/$REGISTRY_IMAGE_PATH/$CI_COMMIT_BRANCH/$LOCALE:$CI_COMMIT_SHORT_SHA \
--destination $REGISTRY/$REGISTRY_IMAGE_PATH/$CI_COMMIT_BRANCH/$LOCALE:latest \
--cache=true
build:production:uz:
rules:
- if: $CI_COMMIT_BRANCH == "stable"
extends:
- .build
variables:
LOCALE: uz
ENV: $ENV_PROD_UZ
deploy:production:
stage: deploy
image: node:14.18.0-alpine
only:
- stable
before_script:
- |
apk --update add --quiet --no-cache openssh-client bind-tools
eval $(ssh-agent -s)
echo "$SSH_PRIVATE_KEY" | ssh-add -
script:
- ssh -o StrictHostKeyChecking=no theking@theking.uz "cd ~/theking.uz/ &&
sed -i '/FRONTEND_UZ_IMAGE/cFRONTEND_UZ_IMAGE=$REGISTRY/$REGISTRY_IMAGE_PATH/$CI_COMMIT_BRANCH/uz:$CI_COMMIT_SHORT_SHA' .env &&
docker-compose up -d frontend-uz"
Peter
Make
Что пояснить?
Не понимаю некоторых, вроде как очевидных на первый взгляд вещей:
1. $REGISTRY_IMAGE_PATH на сколько я понимаю он должен быть $CI_REGISTRY_IMAGE_PATH и береться он каким-то образом у Gitlab. Это выходит что-то переопределили в ENV файле, да? Тоже самое касается $REGISTRY.
2. Что такое вообще этот $REGISTRY? Это имеет какое-то отношение к Docker login?
Peter
Сначала посмотрите, какие есть переменные в Settings -> CI/CD -> Variables
У проекта, у группы и т.д.
Тогда отпадут вопросы про вот такие конструкции
echo "$SSH_PRIVATE_KEY" | ssh-add -
Peter
Там же будут
REGISTRY_USERNAME
REGISTRY_PASSWORD
Peter
Peter
Неплохо бы ещё понять на каком типе раннера бегут пайплайны
√Григорий
Maxim
Переведите на человеческий
Make
получил доступ на прод
там через it exec залез в контейнеры и смотрю, а там файлы gitlab-ci отличаются от тех, что заказчик мне скинул архивом
Make
я вообще не имею понятия, как все это переписывать...
Peter
Make
Make
Те, кто мужику делал сайт, не дают ему доступ к репозиторию
Peter
Make
и при этом не доделала до конца все как он просил
Make
в итоге он от их услуг отказался
Make
они дали ему доступ к админке
Make
доступ к хостингу рег ру
Make
но вот к гиту доступ не дали
Peter
Нужно было составлять договр, в котором прописаны обязанности и ответственность сторон.
Make
и теперь мне надо как-то грубо влезть в это ci cd чтобы закинуть свои правки
но теперь это точно не реально, только переписывать эти файлы
Make
а вот что делать с ci cd я рил хз
Make
у меня не так много знаний, чтобы переписать эти файлы
Make
:(
Peter
Дык, у Вас там композ.
Задача композа связать несколько сервисов в одну кучу. Умение их собирать, ну так, прицепом со стороны.
Фактически, через docker compose up -d поднимаются dev и stage среды
Peter
Если у вас есть адекватные Dockerfile, то изобразить compose особой проблемы не составляет
Make
Дык, у Вас там композ.
Задача композа связать несколько сервисов в одну кучу. Умение их собирать, ну так, прицепом со стороны.
Фактически, через docker compose up -d поднимаются dev и stage среды
Да меня больше файлы ci cd волнуют. Как развернуть без ci cd я знаю, это вроде не проблема, раз контейнеры без ошибок поднимаются норм, задница именно с gitlab ci, который хочется не терять, а адаптировать или переписать
но судя по файлам, там у них используются свои образы с их Docker repository и все это билдиться в dind через Kaniko
Make
и все это такой геммор блять что плавлюсь уже
Peter
Вы знаете куда разворачивается целевой сервис?
Знаете из каких составных частей он состоит?
Peter
По тому пайпу для фронта ничего экстаординарного нет.
Вот у Вас билд. Он дополняет секцию .build: своими переменными и выполняется только в бранче "stable"
build:production:uz:
rules:
- if: $CI_COMMIT_BRANCH == "stable"
extends:
- .build
variables:
LOCALE: uz
ENV: $ENV_PROD_UZ
Make
Make
которые я хз что содержат, у меня же их нет лол :(
Make
это гитовые как я понял
Make
короч, видимо я просто перегрелся
Peter
Деплой состоит из нескольких шагов
deploy:production:
stage: deploy
image: node:14.18.0-alpine
only:
- stable
before_script:
- |
apk --update add --quiet --no-cache openssh-client bind-tools
eval $(ssh-agent -s)
echo "$SSH_PRIVATE_KEY" | ssh-add -
script:
- ssh -o StrictHostKeyChecking=no theking@theking.uz "cd ~/theking.uz/ &&
sed -i '/FRONTEND_UZ_IMAGE/cFRONTEND_UZ_IMAGE=$REGISTRY/$REGISTRY_IMAGE_PATH/$CI_COMMIT_BRANCH/uz:$CI_COMMIT_SHORT_SHA' .env &&
docker-compose up -d frontend-uz"
За базовый имидж взяли node:14.18.0-alpine и сделали несколько шагов до, потом сформировали .env файл и сделали docker-compose up -d для сервиса frontend-uz
Peter
Peter
Эти переменные должны фигурировать или в Dockerfile или в коде на их основании делаются какие-то действия.
Peter
grep -nri ENV_PROD_UZ path_to_source_code
Или дёрните у них из реджистри свежий имидж и посмотрите код там.
Возьмите dive чтобы посмотреть из чего состоит имидж, что у него заносилось на каждом слое
Peter
Возможно, в композе, на их основании что-то переопределялось