- name: Create docker network websoft9 shell: docker network create websoft9 failed_when: False - name: Git Clone app docker repository and change public IP block: - name: Delete {{app}} dir for Second installation shell: rm -rf {{installpath}}/{{app}} {{installpath}}/library - name: Clone docker-library in Websoft9 git: repo: "https://github.com/Websoft9/docker-library.git" dest: "{{installpath}}/library" - name: Clone app from libray shell: cp -r "{{installpath}}/library/apps/{{app}}" "{{installpath}}" - name: Check APP_URL_REPLACE exists shell: | cat "{{installpath}}/{{app}}/.env" |grep APP_URL_REPLACE=true register: http_url_exists failed_when: false - name: Change Public IP for http_url if APP_URL_REPLACE=true shell: | public_ip=`wget -O - https://download.websoft9.com/ansible/get_ip.sh | bash` urlstr=`grep "APP_URL=" /data/apps/{{app}}/.env |cut -d":" -f1` sudo sed -i "s/$urlstr/APP_URL=$public_ip/g" /data/apps/{{app}}/.env when: http_url_exists.stdout != "" - name: Excute Preparation if have pre.yml block: - name: Check if pre.yml exists uri: url: "https://github.com/Websoft9/StackHub/blob/main/apps/roles/{{app}}/tasks/pre.yml" return_content: yes register: pre_exists failed_when: false - name: Excute pre.yml include_tasks: roles/{{app}}/tasks/pre.yml when: pre_exists.status is defined and pre_exists.status == 200 - block: - name: Docker compose up shell: | docker compose up -d sleep 30 args: chdir: "{{installpath}}/{{app}}" - name: Recursively create directory for {{app}} file: path: "{{ item }}" state: directory recurse: yes with_items: - "{{installpath}}/{{app}}/data" - name: Add softlink of all volumes for app root directory block: - name: Get volumes name shell: docker compose config --volumes register: volume_names args: chdir: "{{installpath}}/{{app}}" - name: Create softlink of volumes file: src: "/var/lib/docker/volumes/{{app}}_{{item}}/_data" dest: "{{installpath}}/{{app}}/data/{{item}}" state: link force: yes loop: "{{volume_names.stdout_lines}}"