self-operating-computer icon indicating copy to clipboard operation
self-operating-computer copied to clipboard

Feat Containerize the application to improve cross OS compatibility

Open legendkartik45 opened this issue 2 years ago • 8 comments

🚀 PR Summary: Adds a Dockerfile to support containerization as part of https://github.com/OthersideAI/self-operating-computer/issues/36.

🛠️ Changes Made:

  • Included Dockerfile for containerization.
  • Used Python:3.11-slim as the base image (Considering it's lightweight and supports all libs).

🔍 Testing:

  • Tested successful build and execution using the Dockerfile.

👩‍💻 Next Steps:

  • Review and merge if no issues arise.

🔧 How to Build and Run:

  1. Build the Docker Image:
    
    docker build -t your_image_name .
    
    
  2. Run the Docker Image:
    
    docker run -it your_image_name
    

legendkartik45 avatar Dec 02 '23 17:12 legendkartik45

@joshbickett Any suggestions regarding this PR as how this would align with the priority of features in queue.

legendkartik45 avatar Dec 03 '23 14:12 legendkartik45

@legendkartik45 thanks for the PR. I don't know Docker super well. I'll take a look do some learning and let you know if I have any questions! :)

joshbickett avatar Dec 05 '23 03:12 joshbickett

Hello, while I don't know much about Docker I did some basic research. More detail in this ChatGPT thread: https://chat.openai.com/share/5ff7b3d0-6855-42a6-a3fd-2394e9bd9890

My main concern is that Docker containers are designed to run in isolated environments. They don't natively interact with the host operating system's desktop or graphical user interface. We you able to get this working and working with the native UI on an OS?

__ GUI Operations: Your application relies on GUI operations (like PyAutoGUI), which might not work seamlessly in a headless Docker container. Additional setup or a different approach might be required for GUI interactions.

joshbickett avatar Dec 07 '23 18:12 joshbickett

@legendkartik45 let me know your thoughts on the question above. Thanks

joshbickett avatar Dec 07 '23 18:12 joshbickett

It's going to be challenging to get this to work in a container due to the GUI limitations. What I recommend is using a VM instead. For example, you could create one inside your own desktop or provision one through a cloud provider.

tomasfernandez1212 avatar Dec 09 '23 03:12 tomasfernandez1212

@tomasfernandez1212 that's my understanding as well. Thanks for the input

joshbickett avatar Dec 09 '23 14:12 joshbickett

@joshbickett @tomasfernandez1212 I believe that makes sense, let me explore running on local VM and get back.

legendkartik45 avatar Dec 09 '23 14:12 legendkartik45

@legendkartik45 curious if you have any findings. Thanks

joshbickett avatar Dec 21 '23 15:12 joshbickett

Hi @legendkartik45. Let me know if you found anything on this PR.

I'll close this PR for now until we know more. If you have any updates feel free to reopen the PR

joshbickett avatar Dec 30 '23 16:12 joshbickett