--- - name: create docker-compose.yml for bigbluebutton command: cmd: bash ./scripts/generate-compose chdir: "{{ bbb_repository_directory }}" environment: COMPOSE_HTTP_TIMEOUT: 600 DOCKER_CLIENT_TIMEOUT: 600 listen: setup bigbluebutton - name: Copy docker-compose.yml from origin to final location ansible.builtin.copy: src: "{{ docker_compose_file_origine }}" dest: "{{ docker_compose_file_final }}" remote_src: yes listen: setup bigbluebutton - name: Replace bind mounts by named volume mounts ansible.builtin.replace: path: "{{ docker_compose_file_final }}" regexp: "{{ item.regexp }}" replace: "{{ item.replace }}" loop: - { regexp: '\./data/postgres:/var/lib/postgresql/data', replace: 'database:/var/lib/postgresql/data' } - { regexp: '\./data/bigbluebutton:/var/bigbluebutton', replace: 'bigbluebutton:/var/bigbluebutton' } - { regexp: '\./data/freeswitch-meetings:/var/freeswitch/meetings', replace: 'freeswitch:/var/freeswitch/meetings' } - { regexp: '\./data/greenlight:/usr/src/app/storage', replace: 'greenlight:/usr/src/app/storage' } - { regexp: '\./data/mediasoup:/var/mediasoup', replace: 'mediasoup:/var/mediasoup' } listen: setup bigbluebutton - name: add volume to redis lineinfile: path: "{{ docker_compose_file_final }}" insertafter: "^\\s*redis:" line: " volumes:\n - redis:/data" firstmatch: yes listen: setup bigbluebutton - name: add volume to coturn lineinfile: path: "{{ docker_compose_file_final }}" insertafter: "- ./mod/coturn/turnserver.conf:/etc/coturn/turnserver.conf" line: " - coturn:/var/lib/coturn" listen: setup bigbluebutton # Implemented due to etherpad health bug. # @todo Remove when health check is working fine # @see https://chatgpt.com/c/67a0fc7e-5104-800f-bb6b-3731e2f83b7b #- name: "Update docker-compose.yml for Etherpad health check" # lineinfile: # line: " healthcheck:\n test: [\"CMD\", \"curl\", \"-f\", \"http://127.0.0.1:9001\"]\n interval: 30s\n timeout: 10s\n retries: 5\n start_period: 10s" # path: "{{docker_compose_file_final}}" # insertafter: "etherpad:" # listen: setup bigbluebutton - name: Add volumes block after services in docker compose blockinfile: path: "{{ docker_compose_file_final }}" block: | volumes: database: greenlight: redis: coturn: #freeswitch: bigbluebutton: marker: "# {mark} ANSIBLE MANAGED BLOCK FOR VOLUMES" insertbefore: "^services:" listen: setup bigbluebutton - name: Replace all './' with '/services/' in docker-compose.yml ansible.builtin.replace: path: "{{ docker_compose_file_final }}" regexp: '\./' replace: './services/' listen: setup bigbluebutton - name: "Update healthcheck for bbb-graphql-server" # This is neccessary because the healthcheck doesn't listen to the correct port lineinfile: line: " healthcheck:\n test: [\"CMD\", \"curl\", \"-f\", \"http://localhost:8085/healthz\"]\n interval: 30s\n timeout: 10s\n retries: 5\n start_period: 10s" path: "{{docker_compose_file_final}}" insertafter: "bbb-graphql-server:" listen: setup bigbluebutton - name: docker compose pull bigbluebutton command: cmd: "docker-compose pull" chdir: "{{ bbb_repository_directory }}" listen: setup bigbluebutton - name: docker compose up bigbluebutton command: cmd: "docker-compose -p bigbluebutton up -d --force-recreate{% if mode_cleanup | bool %} --remove-orphans{% endif %}" # Don't use the --build flag here. This leads to bugs chdir: "{{ docker_compose.directories.instance }}" environment: COMPOSE_HTTP_TIMEOUT: 600 DOCKER_CLIENT_TIMEOUT: 600 listen: setup bigbluebutton