Comments (3)
We discussed, and there's no team objection to pushing an official container image, so I'll go and do that.
from foundationdb.
I've felt kind of stuck between two difficult places here. I understand your sentiment that, particularly now that there will be frequent builds by various people of the docker image, it'd be nice to have everything pinned to a fixed version so that everyone gets exactly the same image.
On the other hand, I found it to be an incredible difficulty in upgrading the packages listed by a dockerfile that had all dependencies specified and versions pinned. The dependencies change across versions, new version restrictions start causing previously specified versions to cause conflicts, and now I'm left debugging why my packages form a cycle of blockers when I'm not even sure why most of these packages are even being installed.
I really doubt that I would be the only person having this problem though, but haven't had the time to go look around at how other projects specify their development dockerfiles in a maintainable way. I'd be interested in any links you have. Or, maybe the answer is just for us to publish a "blessed" docker image, and just set up a regular schedule of publishing updates to pick up new compilers and library versions over time?
from foundationdb.
Yeah, I think an official container image is a totally reasonable solution to this problem.
FWIW, at one point we had a little script which given a list of desired packages (and optional versions) would create a temporary container, configure update channels, install the packages, then use dpkg queries to get a list of all installed packages and their versions (which necessarily constitutes a superset of the transitive closure of the dependency chain of the desired packages), and then regenerate the "apt install..." line that could be added back into the Dockerfile. So we just ran that when we had to make a change to the build environment.
I don't actually remember what that Python file was called, but grepping around in this repo I couldn't find it. Perhaps it's been lost to the mists of time. I doubt it would be that hard to rewrite.
from foundationdb.
Related Issues (20)
- fdbcli should ignore the `FDB_NETWORK_OPTION_CLIENT_THREADS_PER_VERSION` setting.
- Documentation: Identifying Experimental Features across versions HOT 5
- Floating point exception when excluding stateless processes 7.1.28
- Setting FDBNetworkOption::FDB_NET_OPTION_TLS_KEY_BYTES has no effect HOT 1
- Using DNS entries in cluster file can cause SIGSEV HOT 8
- Separate critical system metadata from other non-critical ones
- DR constantly growing disk space HOT 5
- 7.1 with tenanting upgrade to 7.3 crash HOT 3
- ClientWorkload bindings unstable ABI
- add Windows client dll tar package HOT 2
- Open FoundationDB in a Dev Container HOT 2
- Segmentation fault when emitting trace during a snapshot operation (7.3.27) HOT 10
- Expose PSI metrics in host metrics
- Deprecate support for Python2
- Remove the use of six.py in FoundationDB Python package
- Remove dependency of trollies in FDB Python package
- Add typing for FDB python binding package
- FoundationDB is unresponsive on MacOS ARM64 when disk usage is high HOT 1
- TestOpenNotExistTenant will always fail on release-7.3/release-7.1
- GetEstimatedRangeSizeBytes can cause PacketLimitExceeded error on commit proxies
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from foundationdb.