carla
carla copied to clipboard
Docker Compose UE4Editor
Description
This PR adds support for a lightweight, dockerized, ui-supported UE4Editor setup, meaning you can locally check out your Git repo on your host machine, then use "make launch" within the GPU-supported build environment inside the Docker container such that the UE4Editor shows up as if it was running on the host OS. Additionally, it should be a lot easier to set up the build toolchain without having to bloat the host OS with tools. It just requires Docker and Git.
Moreover, the changes simplify the Docker build by making Carla.Dockerfile a multi-stage image (including the parts of Release.Dockerfile as runtime stage). This is particularly useful because you don't need to "make package" and then build the Release.Dockerfile copied to the build output again. Now, you get a deployable Docker image right away when building Carla.Dockerfile. Additionally, the Carla.Dockerfile uses the locally checked out Git repository on the host OS instead of cloning the repo again inside the Docker container during image build. This behavior feels much more like a usual Docker workflow.
And some minor changes were also made to Update.sh regarding a speed-up for downloading and unzipping the Content tar archive at the same time using pipe. That way the tar archive never hits the disk and it should be faster after all.
Checklist:
- [x] Your branch is up-to-date with the
dev
branch and tested with latest changes - [x] Extended the README / documentation, if necessary
- [x] Code compiles correctly
- [ ] All tests passing with
make check
(only Linux) - [ ] If relevant, update CHANGELOG.md with your changes
Tests seem to be broken. I didn't change anything in the code, though. Just added some Docker / bash scripts. Maybe your dev branch is broken atm.
[----------] Global test environment tear-down
[==========] 37 tests from 8 test cases ran. (37868 ms total)
[ PASSED ] 36 tests.
[ FAILED ] 1 test, listed below:
[ FAILED ] benchmark_streaming.image_1920x1080_mt
Where has this been tested?
- Platform(s): Ubuntu 18.04 / Docker
- Python version(s): Python 3.7
- Unreal Engine version(s): UE4.26
Possible Drawbacks
No side-effects. It's just Docker changes and Update.sh was made a bit more efficient. The "make package" build output slightly changed because the Dockerfile (Release.Dockerfile) was removed.
Thanks for opening this pull request! The maintainers of this repository would appreciate it if you would update our CHANGELOG.md based on your changes.
Hey @nsubiron @bernatx @marcgpuig, do you want my Docker build system to be merged or not? I'm living in Augsburg, so we could even meet within an hour and talk in person if you want :joy:
Great work, I have been struggling with this for the past weeks.
Great work, I have been struggling with this for the past weeks.
Thanks for your appreciation. It took me half a year to create this and I didn't even change a single code file. It was just a couple hundred lines of bash scripts. This is insanity. I cannot imagine how anyone can work with this codebase at all :sweat_smile:
And btw, CARLA's build tool setup script broke after some weeks because some vendor took down his tarball by incrementing the point release package version by 1, so the URL in the build tools setup points to nothing. I don't know if someone already fixed it.
This whole build tooling is a giant mess. I regret every second I spent creating my scripts (only continued to pass a university assignment). But at least you find it useful, so maybe it's not totally wasted.
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.