Hi,
I have following pipeline on bitbucket. Issues is that after running docker-compose -f docker-compose_test.yml up it just runs keep running docker container & doesn't move to step Populate db and start testing.
When running docker it actually start postgress db and node server. After this command <npm run userSeed> actually uses sequelize to post json record to the db. After this idea is to execute few integration tests.
Any help would be appreciated, thx in advanced.
image: docker:stable
options:
docker: true
pipelines:
default:
- step:
name: Build & run Docker
image: python:3.8.1
services:
- docker
caches:
- docker
- pip
script:
- pip install docker-compose
- docker-compose -f docker-compose_test.yml build
- docker-compose -f docker-compose_test.yml up
- step:
name: Populate db and start testing
script:
- npm run userSeed
- npm run test
Hey @Jouni Riimala
Hi,
Sorry from the late reply, but now I modified system so that I'm just building and running docker compose file (having db and node server) .and in the node server docker file I'm using command to execute node server, seeds and test so end of the dockerfile having CMD with multiple commands.
Now when pipeline is activated it just running docker continuously ... without no evidence from executing seeds and test. Doesn't seems to work as I would expect.
-Jouni
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hello @Jouni Riimala ,
Could you share your modified bitbucket-pipelines.yml file so we can analyze what is the current build configuration you have?
Also, would it be possible to also share the content of your docker compose yml ?
When sharing this info here, please make sure to sanitize any sensitive information.
Thank you, @Jouni Riimala !
Patrik S
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Patrik,
My intention is to run database and server on bitbucket and seed default records into the postgress db (using sequelize) and execute testing. Likely my approach is not good, but this is my intention. I would welcome any examples how to do this correctly.
My latest approach is to embedded all the database seeding and testing to the server dockerfile. This is not working as it complaints from missing bash module when I tried to run it in the terminal (I installed it via npm i bash --save, without impact so still complains.)
Compose file, server dockerfile and pipeline ->
version: "3.9"
services:
db:
container_name: node_db
image: postgres:14.1-alpine
restart: always
environment:
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=postgres
- POSTGRES_DB=postgres
ports:
- '5432:5432'
# volumes:
# - db:/var/lib/postgresql/data
# - ./db/init.sql:/docker-entrypoint-initdb.d/create_tables.sql
server:
container_name: node server
hostname: nodeserver
build:
context: ./server
depends_on:
- db
ports:
- "3006:3006"
environment:
ACCESS_TOKEN_SECRET: ${ACCESS_TOKEN_SECRET}
REFRESH_TOKEN_SECRET: ${REFRESH_TOKEN_SECRET}
SERVER: ${SERVER}
PGHOST: host.docker.internal
NODE_ENV: development
FROM node:16
WORKDIR /App
COPY config.json ./server/config/
COPY package.json .
COPY package-lock.json .
RUN npm install
COPY . .
EXPOSE 3006
CMD [ "node", "./server.js" ]
CMD ["/bin/bash.sh", "-c", "node", "./server.js" && "npm", "run", "siteSeed" && && "npm", "run", "contractSeed" && "npm", "run", "orderSeed" && "npm", "run", "licenseSeed" && "npm", "run", "userSeed" && "npm", "run", "test"]
and in the pipeline to have only this, which install docker compose, build and run docker compose file. As an output this just run docker all the time and without any additional ouput so this approach is not working...
image: docker:stable
options:
docker: true
pipelines:
default:
- step:
name: Build & run Docker
image: python:3.8.1
services:
- docker
caches:
- docker
- pip
script:
- pip install docker-compose
- docker-compose -f docker-compose_licdb.yml build
- docker-compose -f docker-compose_licdb.yml up
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.