-
Notifications
You must be signed in to change notification settings - Fork 11
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update Docker provisioning and docker compose command #953
Conversation
Updates the Docker installation to: - Not use the azavea.docker role (which is no longer maintained), inlining the relevant steps instead. - Use a newer version - Invoke Docker Compose with 'docker compose' (rather than 'docker-compose') since that's how it works in newer Docker versions. I also updated the Vagrant base box, mainly because we might as well not be out of date if we don't have to be, and renamed the shared 'django' docker-compose config to 'django-common', since apparently docker compose now treats it as a name collision to have services in different files with the same name. (Also added a changelog entry for PR #951) Resolves #952
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm able to start the server from a docker-only setup 🎉 I'm having issues bringing up the VM to test, but I'm approving since I'm not sure how relevant the Vagrant setup is on Mac now? Either way leaving my notes below! (One note is that I need to run scripts/setup
with PFB_SHARED_FOLDER_TYPE=virtualbox
to get past mounting errors so not sure if that plays a part.)
The first error I ran into was a conflict with the upgraded base box and ansible version:
==> default: Running provisioner: ansible_local...
default: Installing Ansible...
default: Installing pip... (for Ansible installation)
The requested Ansible version (2.10.7) was not found on the guest.
Please check the Ansible installation on your Vagrant guest system (currently: 2.10.17),
or adapt the provisioner `version` option in your Vagrantfile.
See https://docs.vagrantup.com/v2/provisioning/ansible_common.html#version
for more information.
I was able to get past the above by setting ansible_version
to "latest"
but that seemed to open up other issues with what facts were available in tasks so not quite sure where to take it from here:
TASK [pfb.docker : Configure the Docker APT repository] ************************
fatal: [default]: FAILED! => {"msg": "The task includes an option with an undefined variable. The error was: 'docker_repository_arch' is undefined. 'docker_repository_arch' is undefined\n\nThe error appears to be in '/vagrant/deployment/ansible/roles/pfb.docker/tasks/main.yml': line 8, column 3, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n\n- name: Configure the Docker APT repository\n ^ here\n"}
PLAY RECAP *********************************************************************
default : ok=8 changed=6 unreachable=0 failed=1 skipped=0 rescued=0 ignored=0
Ansible failed to complete successfully. Any error output should be
visible above. Please fix these errors and try again.
Ok, the "TASK [pfb.docker : Configure the Docker APT repository]" error was because I forgot to add a new file to git. I meant to do a clean run on a separate checkout to make sure everything was in place, but I guess I forgot to go back and do that after all the changes were in. I pushed a fixup for that error. The Ansible version error is a little confusing because I did just do
and I believe the answer was yes, since it didn't print a message about a newer version being available. I wonder if you might have an older version of the base box on your machine and it has an older version of Ansible. |
Ok, my VM build with the fixup for the missed file worked. Could you try it again? Given that your first attempt worked partly and exposed a real bug, I think we should be able to get to the point of confirming that it works for more than just me, which would be nice. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Success! Sort of! I'm still having trouble with that ansible version for some reason. Confirming that it's using the new base box version:
==> default: Importing base box 'bento/ubuntu-22.04'...
==> default: Matching MAC address for NAT networking...
==> default: Checking if box 'bento/ubuntu-22.04' version '202401.31.0' is up to date...
And annoyingly I can see that it should match one of the available distributions:
`...from versions:....2.10.0, 2.10.1, 2.10.2, 2.10.3, 2.10.4, 2.10.5, 2.10.6, 2.10.7, 3.0.0b1...`
I wonder if this is unique to my Vagrant or virtualbox versions? I'm using Vagrant 2.3.4
and VirtualBox 7.0.6
.
Tried a couple other explicitly set ansible versions to no avail, so set it to "latest" again just to get through that error and can successfully provision and bring up the server from the VMs.
Ok, I'm going to say that's close enough. It's weird that it says the requested version isn't available then includes it in the list, but if we tried to solve every Vagrant/Virtualbox mystery, we'd never have time for anything else... |
Overview
Updates the Docker installation to:
I also updated the Vagrant base box, mainly because we might as well not be out of date if we don't have to be, and renamed the shared 'django' docker-compose config to 'django-common', since apparently docker compose now treats it as a name collision to have services in different files with the same name.
Resolves #952
Notes
I'm not sure where things stand these days with Vagrant/Virtualbox on Mac machines. Possibly most of these changes won't be relevant. Though the
docker-compose
->docker compose
change will likely help if the alternate strategy is to run Docker-on-host.Testing Instructions
vagrant destroy
)./scripts/setup
(unless you're doing docker-only, in which case just run./scripts/update
)./scripts/server
, whether in or out of the VM)Checklist