Docker
TODO: add more stuff
Docker build command for root image
npx micromanage build --docker --pull @carbon-platform/root
Docker build command for individual service
CARBON_SOME_ENV_VAR=val npx micromanage build --docker @carbon-platform/<name-of-service>
Docker run command for a service
docker run --rm -ti [optional envvars] -p <some-port-num>:<port-num-the-container-uses> -u 10000 <name-of-docker-image>:<version-tag>
Example:
docker run --rm -ti -e GITHUB_TOKEN=$CARBON_GITHUB_TOKEN -p 8080:8080 -u 10000 us.icr.io/carbon-platform/web-app:0.1.123
Docker run command for RabbitMQ messaging
docker run --rm --hostname rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3.9-management
Set up web UI in RabbitMQ
docker exec -ti <container_name> rabbitmq-plugins enable rabbitmq_management
docker exec -ti <container_name> rabbitmqctl add_user admin admin
docker exec -ti <container_name> rabbitmqctl set_user_tags admin administrator
You can then login at http://localhost:15672 with admin/admin
Container registry docs
https://cloud.ibm.com/docs/Registry?topic=Registry-getting-started
Deploy new Code Engine app
Pre-Requisites:
- Docker must be running
- Ibmcloud CLI must be installed
- Code Engine and Container Registry plugins must be installed for ibmcloud CLI
Steps:
Run on CLI:
npx micromanage build --docker --pull @carbon-platform/root
CARBON_GITHUB_TOKEN=<token> npx micromanage build --docker @carbon-platform/<service-name>
- Note: Github token is only necessary when building web-app
ibmcloud login —sso
- select y
- copy code from browser
- paste
- enter
ibmcloud cr login
ibmcloud target -g 'Carbon Platform'
ibmcloud target -r 'us-south'
ibmcloud ce project select -n carbon-platform-test
docker image ls
-> take note of latest image build versiondocker image tag us.icr.io/carbon-platform/[SERVICE_NAME]:[VERSION] us.icr.io/carbon-platform-test/[SERVICE_NAME]:[VERSION]-[UNIQUE_TAG]
docker image push us.icr.io/carbon-platform-test/[SERVICE_NAME]:[VERSION]-[UNIQUE_TAG]
ibmcloud ce application create —name [APP_NAME] —image us.icr.io/carbon-platform-test/[SERVICE_NAME]:[VERSION]-[UNIQUE_TAG] —rs cli-created-icr-registry-secret
- Add
CARBON_SERVICE_NAME=[SERVICE_NAME]
andCARBON_RUN_MODE=DEV
to env variables - Adjust runtime settings
NOTE: if any command fails, try typing it out manually, the single quotes copy weird sometimes
Update existing Code Engine app
Pre-Requisites:
- Docker must be running
- Ibmcloud CLI must be installed
- Code Engine and Container Registry plugins must be installed for ibmcloud CLI
Steps:
Run on CLI:
CARBON_RUN_MODE=STANDARD CARBON_GITHUB_TOKEN=[token] npx micromanage build --docker --pull @carbon-platform/root
CARBON_RUN_MODE=STANDARD CARBON_GITHUB_TOKEN=[token] npx micromanage build --docker @carbon-platform/[SERVICE_NAME]
- Note: Github token is only necessary when building web-app
ibmcloud login —sso
- select y
- copy code from browser
- paste
- enter
ibmcloud cr login
ibmcloud target -g 'Carbon Platform'
ibmcloud target -r 'us-south'
ibmcloud ce project select -n carbon-platform-test
docker image ls
-> take note of latest image build versiondocker image tag us.icr.io/carbon-platform/[SERVICE_NAME]:[VERSION] us.icr.io/carbon-platform-test/[SERVICE_NAME]:[VERSION]-[UNIQUE_TAG]-[n]
-> change the n so we don’t have duplicates (check IBM’s container registry for last n)docker image push us.icr.io/carbon-platform-test/[SERVICE_NAME]:[VERSION]-[UNIQUE_TAG]-[n]
ibmcloud ce application update -n [APP_NAME] --image us.icr.io/carbon-platform-test/[SERVICE_NAME]:[VERSION]-[UNIQUE_TAG]-[n]
NOTE: if any command fails, try typing it out manually, the single quotes copy weird sometimes