digitalmars.D.learn - How to pre build vibe-d dub package
- Andre Pany (40/40) May 29 2020 Hi,
- kookman (12/13) May 29 2020 I do it by defining a configuration “build-deps” in my dub.sdl
- Andre Pany (4/17) May 30 2020 Fantastic, thanks a lot.
Hi,
I have a docker image in which a vibe-d application is build from
source code. Every time a file is changed, unfortunately the
whole vibe-d dub packages are retrieved again from dub registry
and compiled again (which takes ages).
In my app.json I have these dependency declaration:
``` json
"dependencies": {
"vibe-d:core": "0.9.0-alpha.5",
"vibe-d:http": "0.9.0-alpha.5",
"vibe-d:tls": "0.9.0-alpha.5"
},
"subConfigurations": {
"vibe-d:tls": "notls"
},
```
and it would be great if could do s.th. like
RUN dub build vibe-d -y --override-config=vibe-d/notls
to fetch and prebuild the dub package. Therefore, if a file
is changed, only the application itself is compiled
but it just not works. It does not build all dependencies of
vibe-d and
also notls is ignored. I tried a lot of variations but nothing
has the effect
I need.
My workaround is for the moment to create a dummy dub application
and compile it:
``` dockerfile
RUN mkdir -p /tmp/foo/source && echo 'void main(){}' >
/tmp/foo/source/app.d \
&& echo '{"name":"bla", "dependencies": {"vibe-d":
"0.9.0-alpha.5", "vibe-d:tls":
"0.9.0-alpha.5"},"subConfigurations": {"vibe-d:tls": "notls"}}' >
/tmp/foo/dub.json \
&& dub build --root /tmp/foo/
```
Do I miss something here?
Kind regards
André
May 29 2020
On Friday, 29 May 2020 at 11:45:24 UTC, Andre Pany wrote:AndréI do it by defining a configuration “build-deps” in my dub.sdl with target type “none” and then doing the build as two steps in the dockerfile: ``` dockerfile ... WORKDIR /build COPY dub.s* ./ RUN dub build -v —config=build-deps COPY src ./src RUN dub build -v —config=executable ...
May 29 2020
On Saturday, 30 May 2020 at 00:12:20 UTC, kookman wrote:On Friday, 29 May 2020 at 11:45:24 UTC, Andre Pany wrote:Fantastic, thanks a lot. Kind regards AndreAndréI do it by defining a configuration “build-deps” in my dub.sdl with target type “none” and then doing the build as two steps in the dockerfile: ``` dockerfile ... WORKDIR /build COPY dub.s* ./ RUN dub build -v —config=build-deps COPY src ./src RUN dub build -v —config=executable ...
May 30 2020








Andre Pany <andre s-e-a-p.de>