09fe21bb0e
BACKPORT NOTICE: this PR doesn't actually swithc to libc++ due to multiple CI failures such as linking errors or other ------------------ faf62e6ed0ca45db44c370844c3515eb5a8cda12 ci: Remove unused workaround (MarcoFalke) fa7c8509153bfd2d5b4dcff86ad27dfd73e8788b ci: Install llvm to get llvm symbolizer (MarcoFalke) fa563cef61e8a217c5e8ec059e174afae61087a5 test: Add more tsan suppressions (MarcoFalke) fa0cc02c0a029133f080680ae9186002a144738f ci: Mute depends logs completely (MarcoFalke) fa906bf2988c799765a04c484269f890964ec3ee test: Extend tsan suppressions for clang stdlib (MarcoFalke) fa10d850790bbe52d948659bb1ebbb88fe718065 ci: Use libc++ instead of libstdc++ for tsan (MarcoFalke) fa0d5ee1126a8cff9f30f863eb8f5c78bf57e168 ci: Set halt_on_error=1 for tsan (MarcoFalke) fa2ffe87f794caa74f80c1c2d6e6067ee4849632 ci: Deduplicate DOCKER_EXEC (MarcoFalke) fac2eeeb9d718bdb892eef9adf333ea61ba8f3d0 cirrus: Remove no longer needed install step (MarcoFalke) Pull request description: According to the [ThreadSanitizer docs](https://clang.llvm.org/docs/ThreadSanitizer.html#current-status): > C++11 threading is supported with **llvm libc++**. For example, the thread sanitizer build is currently not checking for double lock of mutexes. Fixes (partially) https://github.com/bitcoin/bitcoin/issues/19038#issuecomment-632138003 ACKs for top commit: practicalswift: ACK faf62e6ed0ca45db44c370844c3515eb5a8cda12 fanquake: ACK faf62e6ed0ca45db44c370844c3515eb5a8cda12 hebasto: ACK faf62e6ed0ca45db44c370844c3515eb5a8cda12, maybe re-organize commits to modify suppressions in a single one? Tree-SHA512: 98ce5154b4736dfb811ffdb6e6f63a7bc25fe50d3b73134404a8f3715ad53626c31f9c8132dbacf85de47b9409f1e17a4399e35f78b1da30b1577167ea2982ad |
||
---|---|---|
.. | ||
ci | ||
deploy | ||
develop | ||
guix | ||
README.md |
Containers
This directory contains configuration files for containerization utilities.
Currently two Docker containers exist, ci
defines how Dash's GitLab CI container is built and the dev
builds on top of the ci
to provide a containerized development environment that is as close as possible to CI for contributors! See also Dash on Docker Hub i.e. for the dashd container.
Usage Guide
We utilise edrevo's dockerfile-plus, a syntax extension that leverages Docker BuildKit to reduce the amount of repetitive code.
As BuildKit is opt-in within many currently supported versions of Docker (as of this writing), you need to
set the following environment variables before continuing. While not needed after the initial docker-compose build
(barring updates to the Dockerfile
), we recommend placing this in your ~/.bash_profile
/~/.zshrc
or equivalent
export DOCKER_BUILDKIT=1
export COMPOSE_DOCKER_CLI_BUILD=1
After that, it's simply a matter of building and running your own development container. You can use extensions for your IDE like Visual Studio Code's Remote Containers to run terminal commands from inside the terminal and build Dash Core.
cd contrib/containers/develop
docker-compose build
docker-compose run container