docker image to build bitcoin with visual studio #17885

issue MithrilMan opened this issue on January 6, 2020
  1. MithrilMan commented at 10:33 PM on January 6, 2020: none

    https://github.com/bitcoin/bitcoin/blob/master/build_msvc/README.md contains a description about how to build with Visual Studio. It suggests a way to deal with external dependency libraries but still isn't a straightforward process and it's very time consuming to setup such an environment, as evidenced by #17864

    would be nice to have an easy to use docker image that can be used to build bitcoin, with needed dependencies already there

    it seems Visual Studio Code has an extension that allow you to develop inside a container, see https://code.visualstudio.com/docs/remote/containers , so this would be the perfect solution to have an easy to use environment to build bitcoin, would be possible to have such feature implemented?

    (I'm not aware of something similar for Visual Studio 2019, would be nice to have it supported too)

  2. MithrilMan added the label Feature on Jan 6, 2020
  3. fanquake commented at 11:12 PM on January 6, 2020: member

    Concept NACK.

    This has been proposed and turned down multiple times before: #10903, #13542, #11141.

    Dockerfiles are not something we should have to maintain in this repository. If anything, a more suitable place might be https://github.com/bitcoin-core/packaging. Also see: https://github.com/bitcoin-core/packaging/pull/2.

  4. MithrilMan commented at 12:16 AM on January 7, 2020: none

    Generally speaking, I think that to have a broader audiance (if this is one of your goal) you'd need to create easier dev environment setup/bootstrap for people to work with, and my request was thoward that. I'm not talking about having an image where you can run what you can run on your linux setup (just an example) but a way to attract and make productive people coming from other tool sets and environment like me.

    e.g. having a docker image that embed a remote component that let you to develop with your local Visual Studio Code would be very attractive.

    I always found the used environment requirements quite a barrier to me because I don't have lot of time nor will to invest in learning each of the different tools used here (I'm not talking about the C++ language) and I think others are in the same position and having a way to "easily" use my favourite and well known tools to compile from source would be really helpful and would have pros for the project too (more contributors).

    P.S. I asked here for this feature because you have already a build_msvc folder and I consider this an enhancement.

  5. sipsorcery commented at 9:28 AM on January 7, 2020: member

    IMHO the msvc build cannot be made much simpler. I appreciate you had issues installing vcpkg but in my experience that's unusual and it is now the de-facto Microsoft tool for installing msvc dependencies. My subjective opinion is that if anything docker adds another moving part and makes the build more complicated.

    That all being said I know @NicolasDorier is a big fan of docker and maintains a lot of images. He might have or know of one that can build Bitcoin Core.

  6. MithrilMan commented at 1:21 PM on January 7, 2020: none

    It's not me having these issues, I took that issue as example, anyway there's nothing easier than having a docker image that contains all the needed stuff with the steps listed in the doc already done.

    Thanks for poiting me the list of images there even if they are intended more to be used as runtime more than dev.

    I'd start to think that it's not clear the advantage of what I asked for, maybe if you think about having a restore point of the environment machine you use to dev would be a fair comparison: if your pc go nuts you can restore it from an image with everything setup without the need to pass through the whole cycle of installing 3rd party libraries, compile them, etc...

    moreover such an image should only be updated in case you update or add/remove 3rd party libraries because current bitcoin code could just checked out normally from the container itself like you would with your pc. I'll ping Nicolas to see what he things about that, thanks.

  7. NicolasDorier commented at 1:33 PM on January 19, 2020: contributor

    Dockerfile are not useful for development time. You want to have everything installed locally as is already documented.

    That said, the argument that Dockerfile do not belong here is in my opinion deeply flawed.

    Right now there is tons of documentation pages explaining how to compile bitcoin in different environments. Such documentation can be replaced by dockerfile and tested as part of CI. This is less maintenance rather than more and better notify us when there is something breaking in some distro.

  8. MithrilMan commented at 2:15 PM on January 19, 2020: none

    Dockerfile are not useful for development time

    Not sure what you mean, actually I'm using a custom image for my dev process, starting from https://github.com/freewil/bitcoin-testnet-box as a starting point and I've configured 3 regtest nodes to be up and running when I need them, this way I can easily test my client network implementation against a bitcoincore node (enabling -debug=net in my scenario on that testnet box)

    So to me docker is very useful at development time, because I can start over from an image without the need to backup data folders or such. I'm even thinking about using docker as part of integration tests

  9. MarcoFalke commented at 5:23 PM on April 26, 2020: member

    The feature request didn't seem to attract much attention in the past. Also, the issue seems not important enough right now to keep it sitting around idle in the list of open issues.

    Closing due to lack of interest. Pull requests with improvements are always welcome.

  10. MarcoFalke closed this on Apr 26, 2020

  11. DrahtBot locked this on Feb 15, 2022

github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2026-04-17 06:14 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me