layout | title | tagline |
---|---|---|
page |
Create a Custom Application |
Deploy and submit a test job |
At this point, your app bundle directory structure should look similar to:
fastqc-app/
├── Dockerfile # Done
├── app.ini # Done
├── config.yml # Done
├── fastqc-0.11.7
│ ├── _lib
│ │ ├── CONTAINER_IMAGE # Do not modify
│ │ └── extend-runtime.sh # Do not modify
│ ├── app.json.j2 # Done
│ ├── job.json.j2 # Done
│ ├── runner-template.sh # Done
│ └── tester.sh # Do not modify
└── tests
├── SP1.fq # Done
├── SP1_fastqc.html # Can remove
└── SP1_fastqc.zip # Can remove
The final steps are to deploy using the apps-deploy
command, then run a test
job to confirm it is working
#### Deploy the app
The apps-deploy
command takes the name of the app bundle as an argument (in
this example, 'fastqc-0.11.7
'), and does several things. First, it rebuilds the
Docker container and pushes it to your specified registry. Second, it uploads the
app bundle to your personal space on the deploymentSystem
specified in the app
json file: data-sd2e-projects-users
. Finally, it adds the app to the SD2E
Agave tenant.
Navigate to the top directory of the app bundle and deploy using the following commands:
% cd ~/fastqc-app/
% apps-deploy fastqc-0.11.7
Build app container
Dockerfile: Dockerfile Settings: --push
Building username/fastqc:0.11.7
sha256:a501a75fc171823523fe04e92acff1c373aefaaed8cacef4d9aa20e8ff4ad3b69
REPOSITORY TAG IMAGE ID CREATED SIZE
username/fastqc 0.11.7 501a7c5c7832 11 hours ago 659MB
The push refers to repository [docker.io/username/fastqc]
97f0456ce55f: Layer already exists
916d21f21925: Layer already exists
ab05f309af88: Layer already exists
d00cb0f118a4: Layer already exists
ccf8a343f447: Layer already exists
82bdffe0ad0f: Layer already exists
a34abd72df83: Layer already exists
b5b3b4fd840a: Layer already exists
9a7b8dbe7784: Layer already exists
35f4debb6479: Layer already exists
e1cc03d72f83: Layer already exists
ef79db7deb09: Layer already exists
cfb6934fd56d: Layer already exists
0.11.7: digest: sha256:56e775c505d6419e73910430f45634f4e881271202f07888f7791360c92c1138 size: 3029
Render app definition from template
Deploy username-fastqc-0.11.7...
Upload directory fastqc-0.11.7 to agave://data-sd2e-projects-users/username/apps
Upload fastqc-0.11.7 to agave://data-sd2e-projects-users/username/apps
Registering deploy-username-app.json as a TACC.cloud app
Successfully added app username-fastqc-0.11.7
| id | executionSystem | revision | isPublic | lastModified|
| -- | --------------- | -------- | -------- | ------------|
| username-fastqc-0.11.7 | hpc-tacc-wrangler-username | 1 | false | Apr 26, 2018 7:38 pm|
apps-deploy has run to completion.
If all goes well, you should see the new app in your list of private apps:
% apps-list -Q
username-fastqc-0.11.7
And, you should see a new Docker image appear the Docker Hub to which you are registered.
#### Submit a test job
Submitting a test job has been previously covered in this user guide. Here, testing will be performed in the exact same way.
First, create a template job json file:
% jobs-template username-fastqc-0.11.7 > job.json
If it is not already present, add "fastq": "agave://data-sd2e-community/sample/sailfish/test/read1.fastq"
to the "inputs" field of the job.json to run a test job.
Here are the expected contents of job.json
:
{
"name": "username-fastqc test-1524791360",
"appId": "username-fastqc-0.11.7",
"archive": true,
"inputs": {
"fastq": "agave://data-sd2e-community/sample/sailfish/test/read1.fastq"
},
"parameter": {
}
}
Then, submit the test job:
% jobs-submit -F job.json
Successfully submitted job 833421020533756391-242ac11b-0001-007
Finally, when the job status is FINISHED
, retrieve and inspect the output:
% jobs-output-get 833421020533756391-242ac11b-0001-007
More formalized testing with continuous integration is covered in a later section of this user guide.
Proceed to Best Practices and Next Steps
Go back to Create Custom Applications
Return to the API Documentation Overview