So, you've decided to try Codefresh? Welcome on board!
Using this repository we'll help you get up to speed with basic functionality such as: compiling, testing and building Docker images.
This project uses Node Js, MySQL
to build an application which will eventually become a distributable Docker image.
In the root of this repository you'll find a file named codefresh.yml
, this is our build descriptor and it describes the different steps that comprise our process.
Let's quickly review the contents of this file:
To compile and test our code we use Codefresh's Freestyle step.
The Freestyle step basically let's you say "Hey, Codefresh! Here's a Docker image. Create a new container and run these commands for me, will ya?"
unit_test:
type: composition
working_directory: ${{main_clone}}
composition: ./docker-compose.yml
composition_candidates:
test:
image: ${{build_step}}
links:
- db
command: bash -c '/usr/src/app/test-script.sh'
environment:
- MYSQL_ROOT_PASSWORD=$MYSQL_ROOT_PASSWORD
- MYSQL_USER=$MYSQL_USER
- MYSQL_PASSWORD=$MYSQL_PASSWORD
- MYSQL_DATABASE=$MYSQL_DATABASE
- MYSQL_HOST=$MYSQL_HOST
composition_variables:
- MYSQL_ROOT_PASSWORD=admin
- MYSQL_USER=my_user
- MYSQL_PASSWORD=admin
- MYSQL_DATABASE=nodejs
- MYSQL_HOST=db
The image
field states which image should be used when creating the container (Similar to Travis CI's language
or circlecis
machine`).
The commands
field is how you specify all the commands that you'd like to execute
To bake our application into a Docker image we use Codefresh's Build step.
The Build is a simplified abstraction over the Docker build command.
build_step:
type: build
image_name: codefreshio/example-nodejs-mysql
dockerfile: Dockerfile
tag: ${{CF_BRANCH}}
Use the image_name
field to declare the name of the resulting image (don't forget to change the image owner name from codefreshdemo
to your own!).
To use this example:
- Fork this repository to your own [INSERT_SCM_SYSTEM (git, bitbucket)] account.
- Log in to Codefresh using your [INSERT_SCM_SYSTEM (git, bitbucket)] account.
- Click the
Add Service
button. - Select the forked repository.
- Select the
I have a Codefresh.yml file
option. - Complete the wizard.
- Rejoice!