Skip to content

Commit 1a63521

Browse files
Merge pull request #1676 from freedomofpress/circle-ci-docker-compose
Replace Docker Compose v1 with v2 on CircleCI
2 parents ae26007 + eaefdf0 commit 1a63521

2 files changed

Lines changed: 24 additions & 20 deletions

File tree

.circleci/config.yml

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
11
---
2+
refs:
3+
setup_remote_docker: &setup_remote_docker
4+
setup_remote_docker:
5+
version: 20.10.18
26
version: 2.1
37
commands:
48
check-changed-files-or-halt:
@@ -70,7 +74,7 @@ jobs:
7074
environment:
7175
SETUPTOOLS_USE_DISTUTILS: stdlib
7276
machine:
73-
image: ubuntu-2004:202101-01
77+
image: ubuntu-2204:2023.04.2
7478
working_directory: ~/tracker
7579
steps:
7680
- checkout
@@ -79,7 +83,7 @@ jobs:
7983
name: Ensure we can run dev-env
8084
command: |
8185
make dev-init
82-
docker-compose up -d
86+
docker compose up --detach
8387
while ! curl --output /dev/null --silent --head --fail http://localhost:8000; do sleep 5; done;
8488
make dev-tests
8589
make dev-jest-tests
@@ -98,7 +102,7 @@ jobs:
98102
name: Yank docker logs
99103
command: |
100104
mkdir -p ~/dockercomposelogs || true
101-
docker-compose logs > ~/dockercomposelogs/dev.log
105+
docker compose logs > ~/dockercomposelogs/dev.log
102106
when: always
103107

104108
- store_artifacts:
@@ -108,7 +112,7 @@ jobs:
108112
environment:
109113
SETUPTOOLS_USE_DISTUTILS: stdlib
110114
machine:
111-
image: ubuntu-2004:202101-01
115+
image: ubuntu-2204:2023.04.2
112116
working_directory: ~/tracker
113117
steps:
114118
- checkout
@@ -117,7 +121,7 @@ jobs:
117121
name: Ensure we can run dev-env
118122
command: |
119123
make dev-init
120-
docker-compose up -d
124+
docker compose up --detach
121125
while ! curl --output /dev/null --silent --head --fail http://localhost:8000; do sleep 5; done;
122126
no_output_timeout: 5m
123127

@@ -141,25 +145,24 @@ jobs:
141145
steps:
142146
- checkout
143147

144-
- setup_remote_docker:
145-
version: 20.10.7
148+
- *setup_remote_docker
146149

147150
- run:
148151
name: Ensure we can run prod-env
149152
command: |
150-
docker-compose -f prod-docker-compose.yaml build
151-
docker-compose -f prod-docker-compose.yaml up -d
153+
docker compose -f prod-docker-compose.yaml build
154+
docker compose -f prod-docker-compose.yaml up -d
152155
docker run --rm --network tracker_app curlimages/curl:7.80.0 -4 --retry 24 --retry-delay 5 --retry-all-errors http://app:8000/health/ok/
153-
docker-compose -f prod-docker-compose.yaml exec django /bin/bash -c "./manage.py createdevdata --no-download"
154-
docker-compose -f prod-docker-compose.yaml exec django pip install --require-hashes -r /django/requirements.txt
155-
docker-compose -f prod-docker-compose.yaml exec django ./scripts/pytest
156+
docker compose -f prod-docker-compose.yaml exec django /bin/bash -c "./manage.py createdevdata --no-download"
157+
docker compose -f prod-docker-compose.yaml exec django pip install --require-hashes -r /django/requirements.txt
158+
docker compose -f prod-docker-compose.yaml exec django ./scripts/pytest
156159
no_output_timeout: 5m
157160

158161
- run:
159162
name: Yank docker logs
160163
command: |
161164
mkdir -p ~/dockercomposelogs || true
162-
docker-compose -f prod-docker-compose.yaml logs > ~/dockercomposelogs/prod.log
165+
docker compose -f prod-docker-compose.yaml logs > ~/dockercomposelogs/prod.log
163166
when: always
164167

165168
- store_artifacts:

Makefile

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ open-browser: ## Opens a web-browser pointing to the compose env
1717

1818
.PHONY: dev-import-db
1919
dev-import-db: ## Import a postgres export file located at import.db
20-
docker-compose exec -it postgresql bash -c "cat /django/import.db | sed 's/OWNER\ TO\ [a-z]*/OWNER\ TO\ postgres/g' | psql securedropdb -U postgres &> /dev/null"
20+
docker compose exec -it postgresql bash -c "cat /django/import.db | sed 's/OWNER\ TO\ [a-z]*/OWNER\ TO\ postgres/g' | psql securedropdb -U postgres &> /dev/null"
2121

2222
.PHONY: save-db
2323
dev-save-db: ## Export developer db to file
@@ -33,15 +33,15 @@ ci-tests: ## Runs testinfra against a pre-running CI container (useful for debug
3333

3434
.PHONY: dev-tests
3535
dev-tests: ## Run django tests against developer environment
36-
docker-compose exec django /bin/bash -ec \
36+
docker compose exec django /bin/bash -ec \
3737
"coverage run ./manage.py test --noinput --failfast; \
3838
coverage html ; \
3939
coverage xml ; \
4040
coverage report"
4141

4242
.PHONY: dev-jest-tests
4343
dev-jest-tests: ## Run django tests against developer environment
44-
docker-compose exec node npm test
44+
docker compose exec node npm test
4545

4646
.PHONY: compile-pip-dependencies
4747
compile-pip-dependencies: ## Uses pip-compile to update requirements.txt
@@ -64,6 +64,7 @@ pip-update: ## Uses pip-compile to update requirements.txt for upgrading a speci
6464
bash -c 'apt-get update && apt-get install gcc libpq-dev -y && \
6565
pip install pip-tools && \
6666
pip-compile --generate-hashes --no-header --allow-unsafe --upgrade-package $(PACKAGE) --output-file requirements.txt requirements.in && \
67+
pip-compile --generate-hashes --no-header --allow-unsafe --upgrade-package $(PACKAGE) --output-file ci-requirements.txt ci-requirements.in && \
6768
pip-compile --generate-hashes --no-header --allow-unsafe --upgrade-package $(PACKAGE) --output-file dev-requirements.txt dev-requirements.in'
6869

6970
.PHONY: pip-upgrade
@@ -117,11 +118,11 @@ help: ## Prints this message and exits
117118

118119
.PHONY: eslint
119120
eslint:
120-
docker-compose exec node npm run js-lint
121+
docker compose exec node npm run js-lint
121122

122123
.PHONY: stylelint
123124
stylelint:
124-
docker-compose exec node npm run stylelint
125+
docker compose exec node npm run stylelint
125126

126127
.PHONY: flake8
127128
flake8: ## Runs flake8 linting in Python3 container.
@@ -131,11 +132,11 @@ flake8: ## Runs flake8 linting in Python3 container.
131132

132133
.PHONY: check-migrations
133134
check-migrations: ## Check for ungenerated migrations
134-
docker-compose exec -T django /bin/bash -c "./manage.py makemigrations --dry-run --check"
135+
docker compose exec -T django /bin/bash -c "./manage.py makemigrations --dry-run --check"
135136

136137
.PHONY: bandit
137138
bandit: ## Runs bandit static code analysis in Python3 container.
138-
@docker-compose run --rm django ./scripts/bandit
139+
@docker compose run --rm django ./scripts/bandit
139140

140141
.PHONY: npm-audit
141142
npm-audit: ## Checks NodeJS NPM dependencies for vulnerabilities

0 commit comments

Comments
 (0)