(no title)
Randomdevops | 3 years ago
I haven't quite wrapped my head around Nix yet, but https://hydra.nixos.org/build/203347995/download/2/manual/#e...
### Databases
zipcodes = {
name = "zipcodes";
pkg = customPkgs.zipcodes;
dependsOn = {};
type = "mysql-database";
};
...
### Web services
ZipcodeService = {
name = "ZipcodeService";
pkg = customPkgs.ZipcodeService;
dependsOn = {
inherit zipcodes;
};
type = "tomcat-webapplication";
};
...
And then in the ZipcodeService you can access your dependency attributes
https://hydra.nixos.org/build/203347995/download/2/manual/#e... contextXML = ''
<Context>
<Resource name="jdbc/ZipcodeDB" auth="Container" type="javax.sql.DataSource"
maxActivate="100" maxIdle="30" maxWait="10000"
username="${zipcodes.target.container.mysqlUsername}" password="${zipcodes.target.container.mysqlPassword}" driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://${zipcodes.target.properties.hostname}:${toString (zipcodes.target.container.mysqlPort)}/${zipcodes.name}?autoReconnect=true" />
</Context> 3
'';
Still wondering if the 'zipcodes.target.properties.hostname' is a fixed schema that could be validated or if it is just a map...So yeah it looks like I'm searching for what they describe as a 'services-model' where as docker compose is what they describe as a 'deployment model'...
Their idea of always doing a new deployment and leaving the old versions running, so you can always do a rollback is interesting.
No comments yet.