-
-
Notifications
You must be signed in to change notification settings - Fork 158
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add data volumes for the stackstorm container #26
Comments
These too:
I'm not sure adding those directories under
Either way, you can put them under git and have control of it. |
I think that, by default, all of the containers created with docker-compose should have the same behavior. right now Mongo and Postgres data is preserved (due to volumes) while stackstorm data is not (except the logs). Then, allow customization of the docker-compose setup as needed. By default then, preserve these in volumes:
Regarding the
Things that I would guess don't need auto-bind/mount, because they'll just always be the same in the image (How often do people change them anyway?):
Other things I wonder about (and don't know enough about to suggest whether they might need a bind mount to preserve data across docker-compose down/up:
|
I'm adding this in a docker-compose.override.yml for now:
I used a volume for packs because I won't manually change things there. Everything else I might want to make manual changes, and so I want easier access. Note, adding to the earlier list, I added these (to change the ssl cert):
The big gotcha with doing this, is I have to let the stackstorm image populate all of those first, then copy them into my local folders (making sure permissions don't get messed up), and then add the override file before finally bringing the containers down and up to have the mounts take effect. I really hope there can be a much more automatic way to allow saving all the stackstorm data between container rebuilds. That could be through a customizable entrypoint or whatever. Maybe on first boot, the extra volumes/mounts are mounted somewhere temporary, then data gets copied into them, then some signal file gets put somewhere (where?) so that the copying only happens the first time. Then, the container's mounts get updated to have them in the proper place. Can an entrypoint even do something like that? Is there such thing as an overlay mounted volume? Hmm. Maybe something like this: moby/moby#10947 (comment) |
+1 this. I use a data volume for Jenkins similarly with good results. Easy to rebuild the image and redeploy without nuking all state. |
You can find the old deprecated version in `DEPRECATED/all-in-one` branch archive: https://github.com/StackStorm/st2-docker/tree/DEPRECATED/all-in-one Closes StackStorm#22, closes StackStorm#23, closes StackStorm#26, closes StackStorm#29, closes StackStorm#34, closes StackStorm#41, closes StackStorm#43, closes StackStorm#92, closes StackStorm#112, closes StackStorm#117, closes StackStorm#125, closes StackStorm#133, closes StackStorm#141, closes StackStorm#145, closes StackStorm#151, closes StackStorm#163, closes StackStorm#187, closes StackStorm#188, closes StackStorm#189, closes StackStorm#190 Closes StackStorm#162, closes StackStorm#138, closes StackStorm#108, closes StackStorm#102, closes StackStorm#65
The
stackstorm
container doesn't survive amake down
andmake up
intact. In particular, any packs you install will be missing from /opt/stackstorm/packs, yet exist in the databases because we persist storage used by the dependent services.At a minimum, we should add data volumes for
/opt/stackstorm/packs
.What about adding:
/etc/st2
/etc/mistral
Should any of these NOT be created? What other volume related changes should we make now?
The text was updated successfully, but these errors were encountered: