[ 
https://issues.apache.org/jira/browse/AIRAVATA-3230?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Marcus Christie resolved AIRAVATA-3230.
---------------------------------------
    Resolution: Fixed

> Ansible: build Django JS code in Docker locally
> -----------------------------------------------
>
>                 Key: AIRAVATA-3230
>                 URL: https://issues.apache.org/jira/browse/AIRAVATA-3230
>             Project: Airavata
>          Issue Type: Bug
>          Components: Django Portal
>            Reporter: Marcus Christie
>            Assignee: Marcus Christie
>            Priority: Major
>
> Improve the Ansible Django deploy process by building the JS code once, 
> locally, using Docker.
> h5. Goals
>  - Decrease the time it takes to deploy multiple Django instances by building 
> the JS code only once
>  - Switch back to using package-lock.json files by always building JS code in 
> the Docker container. This will have the benefit of pinning the JS 
> dependencies.
> h5. TODO
>  - [x] Script for running npm install commands in Docker container
>  - [x] Script for running npm run serve/build commands in Docker container
>  - -[ ] Commit the generated package-lock.json files-
>  -- using yarn.lock instead
>  - -[ ] use {{npm ci}} instead of {{npm install}} to improve reproducibility 
> and speed up dependency install (see also 
> [https://stackoverflow.com/a/45566871])-
>  -- using yarn instead
>  - [x] update build_js.sh
>  - [x] update README, docs
>  - [x] separate Dockerfile-deploy for Ansible deploys that copies the 
> airavata-django-portal into the image and builds inside the container
>  - [ ] Bug: ansible deploy builds same airavata-django-portal branch for all 
> django instances, even if some specify a different branch
>  - [x] document: decided to go with yarn and yarn.lock files instead of npm 
> package-lock.json files because of incompatibilities between {{npm ci}} and 
> local relative packages
>  - -[ ] optimization: remove {{node_modules/}} dir after building?-
>  -- doesn't seem necessary
>  - -[ ] optimization: only copy {{dist}} folders out of container?-
>  -- doesn't seem necessary
>  - -[ ] optimization: for Ansible deployment, only build the first stage of 
> the docker image?-
>  -- probably unnecessary, but [target parameter was added to docker_image was 
> added in Ansible 
> 2.9|https://docs.ansible.com/ansible/latest/modules/docker_image_module.html?highlight=docker_image#parameters]
>  - [x] update README with instructions on how to run the Django portal in 
> Docker



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to