This causes so much hassle when trying to do simple things like copying a file to the server. It seems ridiculous not to just allow us to ssh. I know we can create our own ssh server, but it seems like it would just allow us ssh access to the console by default…what am I missing here? This is such a downgrade from other VM hosts.
you can! use the fly ssh commands: fly ssh · Fly Docs
Yes, but this does t work with stuff like rsync and scp. I end up having to create scripts to do that kind of stuff which is error-prone and takes a long time. It’s just frustrating when there’s already existing technology that makes that stuff easy. Maybe I’m just not fly’s target demographic though.
These pages may be of interest:
Yes, this is what I mean, it’s a whole blog post to do something that most services offer OOTB. Maybe I’m just not used to cloud hosted docker images though, so maybe this is common
Out model is indeed different. The preferred path: a Dockerfile describes how your server is to be set up. If you want to make a change, you re-deploy and your server is replaced with a new image.
fwiw you can fly ssh issue and connect to wireguard to use a regular ssh client, but as @rubys mentioned, you’re generally supposed to fly deploy to change files in your app. consider: https://12factor.net/
if you’re trying to upload some static files that is not code, that’s generally supposed to go in a S3 bucket rather than in the filesystem of your app.
It’s worth noting that creating an SSH session onto production Docker (e.g. AWS Fargate) is not generally catered for. Docker containers should be stateless; in a multi-container system one should be able to stop a container at random in production, and it would have no effect on the app.
I wonder if this mindset is partially for security, and partly motivated by discouraging the normalisation of manual tweaks to get something working in prod.
Per the above, I’d argue that most pure-Docker services do not offer it. It makes more sense in manually built servers e.g. cPanel and traditional, full-fat VMs.