aws s3 cp .codebuild/definitions/jets_base.json s3://$S3_BUCKET/codebuild/definitions/jets_base.json
aws s3 cp .codebuild/definitions/jets_main.json s3://$S3_BUCKET/codebuild/definitions/jets_main.json
The JetsBase codebuild project projects builds the Docker base image and pushes it to Docker hub. Here are the commands to manage the codebuild project.
aws codebuild create-project --cli-input-json file://.codebuild/definitions/jets_base.json
aws codebuild update-project --cli-input-json file://.codebuild/definitions/jets_base.json
aws codebuild start-build --project-name JetsBase --source-version codebuild
aws codebuild batch-get-projects --names JetsBase
aws codebuild list-builds-for-project --project-name JetsBase
BUILD_ID=$(aws codebuild list-builds-for-project --project-name JetsBase | jq -r '.ids[0]')
aws codebuild batch-get-builds --ids $BUILD_ID
STREAM=$(aws codebuild batch-get-builds --ids $BUILD_ID | jq -r '.builds[0].logs.streamName')
cw tail -f /aws/codebuild/JetsBase $STREAM
If you want to manually build the Docker base image. Run:
docker build -t tongueroo/jets:base -f Dockerfile.base .
docker push tongueroo/jets:base
aws codebuild create-project --cli-input-json file://.codebuild/definitions/jets_main.json
aws codebuild update-project --cli-input-json file://.codebuild/definitions/jets_main.json
aws codebuild start-build --project-name JetsMain --source-version codebuild
aws codebuild batch-get-projects --names JetsMain
aws codebuild list-builds-for-project --project-name JetsMain
BUILD_ID=$(aws codebuild list-builds-for-project --project-name JetsMain | jq -r '.ids[0]')
aws codebuild batch-get-builds --ids $BUILD_ID
STREAM=$(aws codebuild batch-get-builds --ids $BUILD_ID | jq -r '.builds[0].logs.streamName')
cw tail -f /aws/codebuild/JetsMain $STREAM
time docker run -it -v /var/run/docker.sock:/var/run/docker.sock \
-e "IMAGE_NAME=tongueroo/jets:base" \
-e "ARTIFACTS=/tmp/artifacts" \
-e "SOURCE=/home/ec2-user/environment/jets" \
-e "DB_USER=$DB_USER" \
-e "DB_PASS=$DB_PASS" \
-e "DB_HOST=$DB_HOST" \
amazon/aws-codebuild-local
Can run the integration.sh test locally by running:
export DB_NAME=demo
export DB_USER=dbuser
export DB_PASS=dbpass
export DB_HOST=rdshost
.codebuild/integration.sh
Note, you'll need to use a real RDS db instance. Make sure DATABASE_URL is not set, this is working with the DB_* vars.