mirror of
https://github.com/ansible/awx.git
synced 2024-10-31 06:51:10 +03:00
f2ddf2af95
See https://www.projectatomic.io/blog/2015/06/using-volumes-with-docker-can-cause-problems-with-selinux/
176 lines
4.1 KiB
YAML
176 lines
4.1 KiB
YAML
---
|
|
- name: Get Version from checkout if not provided
|
|
shell: "git describe --long | sed 's/\\-g.*//' | sed 's/\\-/\\./'"
|
|
delegate_to: localhost
|
|
register: awx_version_command
|
|
when: awx_version is not defined
|
|
|
|
- name: Set global version if not provided
|
|
set_fact:
|
|
awx_version: "{{ awx_version_command.stdout }}"
|
|
when: awx_version is not defined
|
|
|
|
- name: Verify awx-logos directory exists for official install
|
|
stat:
|
|
path: "../../awx-logos"
|
|
delegate_to: localhost
|
|
register: logosdir
|
|
failed_when: logosdir.stat.isdir is not defined or not logosdir.stat.isdir
|
|
when: awx_official
|
|
|
|
- name: Copy logos for inclusion in sdist
|
|
synchronize:
|
|
src: "../../awx-logos/awx/ui/client/assets"
|
|
dest: "../awx/ui/client/"
|
|
delegate_to: localhost
|
|
when: awx_official
|
|
|
|
- name: Set sdist file name
|
|
set_fact:
|
|
awx_sdist_file: "awx-{{ awx_version }}.tar.gz"
|
|
|
|
- name: AWX Distribution
|
|
debug:
|
|
msg: "{{ awx_sdist_file }}"
|
|
|
|
- name: Stat distribution file
|
|
stat:
|
|
path: "../dist/{{ awx_sdist_file }}"
|
|
delegate_to: localhost
|
|
register: sdist
|
|
|
|
- name: Clean distribution
|
|
shell: make clean
|
|
args:
|
|
chdir: ..
|
|
ignore_errors: yes
|
|
when: not sdist.stat.exists
|
|
delegate_to: localhost
|
|
|
|
- name: Build sdist builder image
|
|
docker_image:
|
|
path: "image_build/files"
|
|
dockerfile: Dockerfile.sdist
|
|
name: awx_sdist_builder
|
|
tag: "{{ awx_version }}"
|
|
force: true
|
|
|
|
- name: Build AWX distribution
|
|
docker_container:
|
|
image: "awx_sdist_builder:{{ awx_version }}"
|
|
name: awx_sdist_builder
|
|
state: started
|
|
detach: false
|
|
volumes:
|
|
- ../:/awx:Z
|
|
|
|
- name: Set docker build base path
|
|
set_fact:
|
|
docker_base_path: "{{ awx_local_base_config_path|default('/tmp') }}/docker-image"
|
|
|
|
- name: Set awx_web image name
|
|
set_fact:
|
|
awx_web_image: "{{ awx_web_image|default('awx_web') }}"
|
|
|
|
- name: Set awx_task image name
|
|
set_fact:
|
|
awx_task_image: "{{ awx_task_image|default('awx_task') }}"
|
|
|
|
- name: Ensure directory exists
|
|
file:
|
|
path: "{{ docker_base_path }}"
|
|
state: directory
|
|
delegate_to: localhost
|
|
|
|
- name: Stage sdist
|
|
copy:
|
|
src: "../dist/{{ awx_sdist_file }}"
|
|
dest: "{{ docker_base_path }}/{{ awx_sdist_file }}"
|
|
delegate_to: localhost
|
|
|
|
- name: Template web Dockerfile
|
|
template:
|
|
src: Dockerfile.j2
|
|
dest: "{{ docker_base_path }}/Dockerfile"
|
|
delegate_to: localhost
|
|
|
|
- name: Template task Dockerfile
|
|
template:
|
|
src: Dockerfile.task.j2
|
|
dest: "{{ docker_base_path }}/Dockerfile.task"
|
|
delegate_to: localhost
|
|
|
|
- name: Stage launch_awx
|
|
copy:
|
|
src: launch_awx.sh
|
|
dest: "{{ docker_base_path }}/launch_awx.sh"
|
|
mode: '0700'
|
|
delegate_to: localhost
|
|
|
|
- name: Stage launch_awx_task
|
|
copy:
|
|
src: launch_awx_task.sh
|
|
dest: "{{ docker_base_path }}/launch_awx_task.sh"
|
|
mode: '0700'
|
|
delegate_to: localhost
|
|
|
|
- name: Stage nginx.conf
|
|
copy:
|
|
src: nginx.conf
|
|
dest: "{{ docker_base_path }}/nginx.conf"
|
|
delegate_to: localhost
|
|
|
|
- name: Stage supervisor.conf
|
|
copy:
|
|
src: supervisor.conf
|
|
dest: "{{ docker_base_path }}/supervisor.conf"
|
|
delegate_to: localhost
|
|
|
|
- name: Stage supervisor_task.conf
|
|
copy:
|
|
src: supervisor_task.conf
|
|
dest: "{{ docker_base_path }}/supervisor_task.conf"
|
|
delegate_to: localhost
|
|
|
|
- name: Stage settings.py
|
|
copy:
|
|
src: settings.py
|
|
dest: "{{ docker_base_path }}/settings.py"
|
|
delegate_to: localhost
|
|
|
|
- name: Stage requirements
|
|
copy:
|
|
src: ../requirements/
|
|
dest: "{{ docker_base_path }}/requirements"
|
|
delegate_to: localhost
|
|
|
|
- name: Stage Makefile
|
|
copy:
|
|
src: ../Makefile
|
|
dest: "{{ docker_base_path }}/Makefile"
|
|
delegate_to: localhost
|
|
|
|
- name: Build base web image
|
|
docker_image:
|
|
path: "{{ docker_base_path }}"
|
|
dockerfile: Dockerfile
|
|
name: "{{ awx_web_image }}"
|
|
tag: "{{ awx_version }}"
|
|
delegate_to: localhost
|
|
|
|
- name: Build base task image
|
|
docker_image:
|
|
path: "{{ docker_base_path }}"
|
|
dockerfile: Dockerfile.task
|
|
name: "{{ awx_task_image }}"
|
|
tag: "{{ awx_version }}"
|
|
pull: no
|
|
delegate_to: localhost
|
|
|
|
- name: Clean docker base directory
|
|
file:
|
|
path: "{{ docker_base_path }}"
|
|
state: absent
|
|
when: cleanup_docker_base|default(True)
|
|
delegate_to: localhost
|