Skip to content

Commit 9fb582d

Browse files
authored
Simplify the dev environment setup instructions by reusing Compose files (#7254)
The advantages of this are as follows: * It's much easier for a developer to use one `docker compose up` command to bring everything up than to run a custom command for each service. * We eliminate possible divergence of configuration (e.g. versions, command-line parameters) between what we actually use and what's listed in the documentation. * It makes it easier to update the developer guide if new dependencies are introduced. * And speaking of new dependencies, we have KeyDB now, which hasn't been added to the dev guide. The disadvantage is that we have to run an extra copy of the CVAT server, because otherwise OPA can't fetch its rules. I don't think it's a significant issue, since it doesn't prevent you from debugging anything. <!-- Raise an issue to propose your change (https://github.com/opencv/cvat/issues). It helps to avoid duplication of efforts from multiple independent contributors. Discuss your ideas with maintainers to be sure that changes will be approved and merged. Read the [Contribution guide](https://opencv.github.io/cvat/docs/contributing/). --> <!-- Provide a general summary of your changes in the Title above --> ### Motivation and context <!-- Why is this change required? What problem does it solve? If it fixes an open issue, please link to the issue here. Describe your changes in detail, add screenshots. --> Working on #7245, I realized that I don't want to add another custom command for running Redis in the development environment to the dev guide. So I wanted to remove the custom commands entirely. ### How has this been tested? <!-- Please describe in detail how you tested your changes. Include details of your testing environment, and the tests you ran to see how your change affects other areas of the code, etc. --> By manually following the updated instructions. ### Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. If an item isn't applicable for some reason, then ~~explicitly strikethrough~~ the whole line. If you don't do that, GitHub will show incorrect progress for the pull request. If you're unsure about any of these, don't hesitate to ask. We're here to help! --> - [x] I submit my changes into the `develop` branch - ~~[ ] I have created a changelog fragment~~ <!-- see top comment in CHANGELOG.md --> - [x] I have updated the documentation accordingly - ~~[ ] I have added tests to cover my changes~~ - [x] I have linked related issues (see [GitHub docs]( https://help.github.com/en/github/managing-your-work-on-github/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword)) - ~~[ ] I have increased versions of npm packages if it is necessary ([cvat-canvas](https://github.com/opencv/cvat/tree/develop/cvat-canvas#versioning), [cvat-core](https://github.com/opencv/cvat/tree/develop/cvat-core#versioning), [cvat-data](https://github.com/opencv/cvat/tree/develop/cvat-data#versioning) and [cvat-ui](https://github.com/opencv/cvat/tree/develop/cvat-ui#versioning))~~ ### License - [x] I submit _my code changes_ under the same [MIT License]( https://github.com/opencv/cvat/blob/develop/LICENSE) that covers the project. Feel free to contact the maintainers if that's a concern.
1 parent 1bb674a commit 9fb582d

File tree

3 files changed

+13
-18
lines changed

3 files changed

+13
-18
lines changed

docker-compose.ci.yml

-5
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,3 @@ services:
2323
GITHUB_RUN_ID:
2424
volumes:
2525
- ${HOST_COVERAGE_DATA_DIR}:${CONTAINER_COVERAGE_DATA_DIR}
26-
27-
cvat_redis:
28-
ports:
29-
- 6379:6379
30-

docker-compose.dev.yml

+4
Original file line numberDiff line numberDiff line change
@@ -104,3 +104,7 @@ services:
104104
cvat_opa:
105105
ports:
106106
- '8181:8181'
107+
108+
cvat_redis:
109+
ports:
110+
- '6379:6379'

site/content/en/docs/contributing/development-environment.md

+9-13
Original file line numberDiff line numberDiff line change
@@ -152,25 +152,21 @@ description: 'Installing a development environment for different operating syste
152152
>
153153
> Perform this action before installing cvat requirements from the list mentioned above.
154154
155-
- Install [Docker Engine](https://docs.docker.com/engine/install/ubuntu/) and [Docker-Compose](https://docs.docker.com/compose/install/)
155+
- Install [Docker Engine](https://docs.docker.com/engine/install/ubuntu/) and [Docker Compose](https://docs.docker.com/compose/install/)
156156
157-
- Pull and run Open Policy Agent docker image:
157+
- Start service dependencies:
158158
159159
```bash
160-
docker run -d --rm --name cvat_opa_debug -p 8181:8181 --network=host openpolicyagent/opa:0.45.0-rootless \
161-
run --server --set=decision_logs.console=true --set=services.cvat.url=http://localhost:7000 \
162-
--set=bundles.cvat.service=cvat --set=bundles.cvat.resource=/api/auth/rules
160+
docker compose -f docker-compose.yml -f docker-compose.dev.yml up -d --build \
161+
cvat_opa cvat_db cvat_redis cvat_server
163162
```
164163
165-
- Pull and run PostgreSQL docker image:
164+
Note: this runs an extra copy of the CVAT server in order to supply rules to OPA.
165+
If you update the OPA rules, rerun this command to recreate the server image and container.
166166

167-
```bash
168-
docker run --name cvat_db_debug -e POSTGRES_HOST_AUTH_METHOD=trust -e POSTGRES_USER=root \
169-
-e POSTGRES_DB=cvat -p 5432:5432 -d postgres
170-
```
171-
172-
Note: use `docker start/stop cvat_db_debug` commands to start and stop the container.
173-
If it is removed, data will be removed together with the container.
167+
Note: to stop these services, use
168+
`docker compose -f docker-compose.yml -f docker-compose.dev.yml down`.
169+
You can add `-v` to remove the data, as well.
174170

175171
- Apply migrations and create a super user for CVAT:
176172

0 commit comments

Comments
 (0)