# AWX Developer Docker Install

**URL:** <https://forum.ansible.com/t/awx-developer-docker-install/37075>\
**Category:** AWX Project\
**Tags:** awx\
**Created:** [September 7, 2022, 2:12pm UTC](https://forum.ansible.com/t/awx-developer-docker-install/37075 "2022-09-07T14:12:45Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![trippinnik](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/trippinnik/32/4308_2.png) [@trippinnik](https://forum.ansible.com/u/trippinnik)\
**Post date:** [September 7, 2022, 2:12pm UTC](https://forum.ansible.com/t/awx-developer-docker-install/37075/1 "2022-09-07T14:12:45Z")

</div>

I’m following the instructions: for docker compose for development [https://github.com/ansible/awx/blob/devel/tools/docker-compose/README.md](https://github.com/ansible/awx/blob/devel/tools/docker-compose/README.md)

I’ve tried the latest branch release and the previous branch release. I successfully ran make docker-compose-build but make docker-compose never completes and keeps throwing this error in console:  
tools\_awx\_1 | ImportError: libldap.so.2: cannot open shared object file: No such file or directory

---

<div class="post-metadata">

**Author:** ![AWX\_Project](https://avatars.discourse-cdn.com/v4/letter/a/eada6e/32.png) [@AWX\_Project](https://forum.ansible.com/u/AWX_Project)\
**Post date:** [September 9, 2022, 5:33pm UTC](https://forum.ansible.com/t/awx-developer-docker-install/37075/2 "2022-09-09T17:33:10Z")

</div>

What if you skip the make docker-compose-build step, and just run “COMPOSE\_TAG=devel make docker-compose” to pull the already-built image from the [ghcr.io](http://ghcr.io) registry

Does it work in that case?

AWX Team

---

<div class="post-metadata">

**Author:** ![trippinnik](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/trippinnik/32/4308_2.png) [@trippinnik](https://forum.ansible.com/u/trippinnik)\
**Post date:** [September 13, 2022, 12:32pm UTC](https://forum.ansible.com/t/awx-developer-docker-install/37075/3 "2022-09-13T12:32:41Z")

</div>

I was able to run it with the production instructions with awx operator. My issue now is trying to figure out how to have operator deploy but substitute the location of the images. The deployment space does not have internet access and we use artifactory. I can put the images there but with operator I don’t know where I would substitute the location to pull necessary images from.

---

<div class="post-metadata">

**Author:** ![AWX\_Project](https://avatars.discourse-cdn.com/v4/letter/a/eada6e/32.png) [@AWX\_Project](https://forum.ansible.com/u/AWX_Project)\
**Post date:** [September 16, 2022, 9:48pm UTC](https://forum.ansible.com/t/awx-developer-docker-install/37075/4 "2022-09-16T21:48:02Z")

</div>

To deploy in an air-gapped or offline environment, you’ll need to mirror the images to your own internal registry, then override the respective image and image\_version values via the spec on the AWX CR. There are some other threads about it, I’ll try to summarize here:

```auto
---
apiVersion: awx.ansible.com/v1beta1
kind: AWX
metadata:
name: awx-demo
spec:
image: xxx
image_version: xxx
init_container_image: xxx
init_container_image_version: xxx
redis_image: xxx
redis_image_version: xxx
control_plane_ee_image: xxx
control_plane_ee_image_version: xxx
postgres_image: xxx
postgres_image_version: xxx
image_pull_secrets: <image-pull-secret-for-private-registry>
# ee_images
# ee_pull_credentials_secret: xxx

```

The tricky part though is that you need to specify the awx-operator image as well. Which can be done with kustomize. When you deploy the operator, you can have a kustomization.yaml file that looks like this:

```auto
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
# Find the latest tag here: https://github.com/ansible/awx-operator/releases
- github.com/ansible/awx-operator/config/default?ref=<tag>

# Set the image tags to match the git version from above
images:
- name: registry.io/private-repo/awx-operator
newTag: <tag>

# Specify a custom namespace in which to install AWX
namespace: awx

```

I think that should do it.

FYI, the downstream AAP offering handles registry mirroring in a smoother way, more transparent to the user with Openshift. That might be something to look into if that is an option for you.

Thanks,  
AWX Team
