所以我为我的python应用程序设置了bitbucket-pipelines.yml
。它需要一个postgres数据库,所以我按照这里的教程(https://confluence.atlassian.com/bitbucket/test-with-databases-in-bitbucket-pipelines-856697462.html)进行了以下配置:
image: node
pipelines:
default:
- step:
script:
- npm install
- npm test
services:
- postgres
definitions:
services:
postgres:
image: postgres
environment:
POSTGRES_DB: 'pipelines'
POSTGRES_USER: 'test_user'
POSTGRES_PASSWORD: 'test_user_password'
我需要在我的数据库中使用一些特定的扩展,如何添加这些扩展。我试图在安装它们的脚本中添加一个额外的东西但是那时postgres似乎没有启动并运行。
答案 0 :(得分:0)
您需要基于postgres创建自己的图像,然后将其推送到存储库并在管道中使用
definitions:
services:
postgres:
image: your_custom_image_based_on_postgres
environment:
POSTGRES_DB: 'pipelines'
POSTGRES_USER: 'test_user'
POSTGRES_PASSWORD: 'test_user_password'
中找到符合您要求的图片
答案 1 :(得分:0)
这对我有用,无需构建我自己的图像(我为postgres添加了2个扩展名):
image: node:8.11.1 # or any image you need
clone:
depth: 1 # include the last commit
definitions:
services:
postgres:
image: postgres
environment:
POSTGRES_DB: test
POSTGRES_USER: postgres
POSTGRES_PASSWORD: your_password
pipelines:
default:
- step:
caches:
- node
script:
- npm install
- apt-get update
- apt-get -y install postgresql-client
- ./bin/utilities/wait-for-it.sh -h localhost -p 5432 -t 30
- PGPASSWORD=your_password psql -h localhost -p 5432 -c "create extension if not exists \"uuid-ossp\"; create extension if not exists pg_trgm;" -U postgres test;
- npm test test/drivers/* test/helpers/* test/models/*
services:
- postgres
wait-for-it.sh
确保postgres已准备就绪,您可以在此处找到:https://github.com/vishnubob/wait-for-it
然后,我运行psql在测试数据库中创建扩展。这里注意我在运行之前设置的变量PGPASSWORD
,并且我使用-h
和-p
参数连接到正在运行的postgres实例(否则它会尝试使用unix套接字,这似乎不起作用。)