From a1bd84af5e95bd6e5459c7ba1be759b443b211ea Mon Sep 17 00:00:00 2001 From: Shane McDonald Date: Sun, 10 Sep 2017 18:54:21 -0400 Subject: [PATCH 1/2] Build sdist inside of a container A lot of people have experienced issues with the system-level dependencies that are required in order to build the source distribution that is handed off to the image builds. This makes it unnecessary to install any additional software on the host machine aside from Ansible and Docker. --- installer/image_build/files/Dockerfile.sdist | 20 ++++++++++++++++++++ installer/image_build/tasks/main.yml | 20 +++++++++++++++----- 2 files changed, 35 insertions(+), 5 deletions(-) create mode 100644 installer/image_build/files/Dockerfile.sdist diff --git a/installer/image_build/files/Dockerfile.sdist b/installer/image_build/files/Dockerfile.sdist new file mode 100644 index 0000000000..15d0749f15 --- /dev/null +++ b/installer/image_build/files/Dockerfile.sdist @@ -0,0 +1,20 @@ +FROM centos:7 + +RUN yum install -y epel-release + +RUN yum install -y bzip2 \ + gcc-c++ \ + gettext \ + git \ + make \ + python \ + python-pip + +RUN curl --silent --location https://rpm.nodesource.com/setup_6.x | bash - +RUN yum install -y nodejs +RUN npm set progress=false + +WORKDIR "/awx" + +ENTRYPOINT ["/bin/bash", "-c"] +CMD ["make sdist"] diff --git a/installer/image_build/tasks/main.yml b/installer/image_build/tasks/main.yml index 45a9879623..b6c41fc97b 100644 --- a/installer/image_build/tasks/main.yml +++ b/installer/image_build/tasks/main.yml @@ -47,12 +47,22 @@ 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 - shell: make sdist - args: - chdir: .. - creates: "./dist/{{ awx_sdist_file }}" - delegate_to: localhost + docker_container: + image: "awx_sdist_builder:{{ awx_version }}" + name: awx_sdist_builder + state: started + detach: false + volumes: + - ../:/awx - name: Set docker build base path set_fact: From b8e628958e2eff479cd6a55f16d5dea448c10c4e Mon Sep 17 00:00:00 2001 From: Shane McDonald Date: Mon, 11 Sep 2017 08:42:56 -0400 Subject: [PATCH 2/2] Update INSTALL.md These dependencies are unnecessary now that we are building the sdist inside of a container. --- INSTALL.md | 19 ------------------- 1 file changed, 19 deletions(-) diff --git a/INSTALL.md b/INSTALL.md index d27042395c..a4fc0b8d57 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -8,7 +8,6 @@ This document provides a guide for installing AWX. - [Clone the repo](#clone-the-repo) - [AWX branding](#awx-branding) - [Prerequisites](#prerequisites) - - [Installing gettext](#installing-gettext) - [AWX Tunables](#awx-tunables) - [Choose a deployment platform](#choose-a-deployment-platform) - [OpenShift](#openshift) @@ -49,29 +48,11 @@ To install the assets, clone the awx-logos repo into the root of your local AWX Before you can run a deployment, you'll need the following installed in your local environment: - [Ansible](http://docs.ansible.com/ansible/latest/intro_installation.html) -- gettext package for your platform (See [Installing gettext](#installing-gettext)) - [Docker](https://docs.docker.com/engine/installation/) - [docker-py](https://github.com/docker/docker-py) Python module -- [Node 6.x LTS version](https://nodejs.org/en/download/) -- [NPM 3.x LTS](https://docs.npmjs.com/) - [GNU Make](https://www.gnu.org/software/make/) - [Git](https://git-scm.com/) -#### Installing gettext - -On Fedora / CentOS / RHEL: - -```bash -$ yum install gettext -``` - -On macOS: - -```bash -$ brew install gettext -$ brew link gettext --force -``` - ### AWX Tunables **TODO** add tunable bits