-
Notifications
You must be signed in to change notification settings - Fork 41
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
unable to run customized image #58
Comments
Please check if discussions in these similar issues help you: |
I've added -d flag during
|
Well, something tries to open the Anyway, the AESM error seems to be resolved. |
Yeah... Tks for your help. |
I'm not sure what you mean by "interactive manner", but after you created a "graminized" Docker image (the one with the |
Tks a lot for your timely response!!!! |
Sorry to reopen this issue again. Something weird happened.
Could you please kindly point out the problem? |
So at this point you enter the "graminized" Docker container based on the image Then you run your experiments. Can you show the command lines -- how exactly you run the experiments? (I have a suspicion that you run native applications instead of |
You are right... I did run those native applications instead of graminized ones. |
Ideally, you would write manifest files for each one of them -- well, only for those that need to run inside the SGX enclaves. But this would also mean that GSC doesn't suit your purpose -- GSC is not tailored to run several applications in the same Docker image. GSC wraps only one application in the Docker image. However, many users of GSC do a trick: they write a Bash/Python script that chooses which application to invoke, based on the command line argument or environment variable. Then this Bash/Python script is marked as the ENTRYPOINT in the Docker image. Thus, GSC wraps this Bash/Python script and all the applications that this script invokes. I suggest you to use this trick. |
Thanks for your reply. Just a silly question: suppose I put those native commands in the bash script, mark it as the entrypoint inside dockerfile, build & sign the image, run the "graminized" container, and then all native commands are running inside an enclave right? |
Yes, you are absolutely right. Think of it this way: Gramine just needs an "entry" program as a hint. Then Gramine starts this entry program inside the SGX enclave, and all child programs that this entry program spawns are also automatically started by Gramine inside SGX enclaves. If it helps, make an analogy with Docker containers: Docker runtime just needs an ENTRYPOINT in the Docker image -- this entrypoint is a hint which program to start inside the Docker container, and all child programs that this entrypoint program spawns are also running in the same Docker container. Same with Gramine. |
Tks a lot. I am now trying to run all those experiments in a bash script and mark it as the entry point of my image. This bash script consists of several parts in this order:
However, when I run the docker, all |
These are the exit codes reported by these PostgreSQL commands. These exit codes have nothing to do with Gramine (at least I think so). Please enable debug info, to get more logs from Gramine (for this, rebuild your Docker image with
No, GSC poses no restrictions on socket communication.
Could you please take a deeper look at the debug logs of Gramine? Analyzing them may give you a better understanding of what exactly is failing. Also, do Postgres programs themselves print any information? |
There're
Sadly, no except |
You meant "to be issues by non-root user"? For this, we have the special manifest options: https://gramine.readthedocs.io/en/latest/manifest-syntax.html#user-id-and-group-id. By default, Gramine uses
This looks very serious. For some reason, GSC didn't mark these files as trusted. I don't know why -- are you installing some packages after GSC generated the final graminized Docker image? Why would GSC not include these files as trusted? It's surprising to me. Anyway, you can mark these files as
You can ignore this. It is harmless.
You also need to include it in your manifest file. The easiest is to add |
These two warning doesn't exist anymore after add
This error still exists. Any idea for this system error? |
The |
Description of the problem
I am trying to run a modified PostgreSQL (with customized executors and so on) inside an enclave. Hence, I pulled the ubuntu18.04 image from dockerhub, built the modified PostgreSQL inside the ubuntu docker, and then
docker commit
the modified image.After I have signed the modified image, it failed to load and get error code 6 when I hit
docker run.
System information
My system configuration:
Ubuntu 18.04 with kernel 5.9.0
Docker version 20.10.16, build aa7e414
gramine built on branch v1.1
Steps to reproduce
I've modified my config.yaml file with
Then I createad the gsc-signed image using:
and I got output from gsc info-image as
Expected results
enter the container successfully with everything protected by SGX
Actual results
The text was updated successfully, but these errors were encountered: