Puncte:2

Nu se pot modifica permisiunile în cadrul instanței AWS Docker ubuntu

drapel es

Încerc să rulez un bot Discord într-un container docker AWS ubuntu.

Dockerfile-ul meu arată astfel:

DE PE ubuntu 
ADAUGĂ hydrabot.exe /
ADAUGĂ bot_config.json /
ADAUGĂ client_secrets.json /
ADAUGĂ Cyberbit.ttf /
ADAUGĂ credentials.txt /
ADD performance.png /
CMD ["./hydrabot.exe"]

am alergat;

cd /dockerfiledirectory
sudo chown 1001:1001 /dockerfiledirectory
docker build -t arbitraryname .

Și acum încerc să alerg: docker run -ârestart=întotdeauna nume arbitrar

Dar primesc eroarea;

docker: Răspuns de eroare de la daemon: OCI runtime create failed: container_linux.go:380: pornirea procesului containerului cauzat: exec: "./hydrabot.exe": permisiunea refuzată: necunoscut.

Am citit câteva subiecte de stivă și indică încercarea de a seta permisiunile directorului local aws să se execute așa cum sunt în prezent; -rw-rw-r-- 1 ubuntu ubuntu 45612135 27 ian 12:25 hydrabot.exe

Le-am încercat pe amândouă chmod -x hydrabot.exe și sudo -x hydrabot.exe dar nici nu schimb permisiunile când reinspectez.

Artur Meinild avatar
drapel vn
Încercați să executați un executabil Windows (.exe) într-un container Ubuntu? Incerc doar sa inteleg aici..
L23P avatar
drapel es
Da, aproape @ArturMeinild. Botul Discord rula și se sparge în instanța nativă aws, cineva a sugerat să încerce să-l ruleze într-un container docker.
lnee avatar
drapel td
Docker nu emulează kernel-ul, deoarece Windows Exes nu poate rula pe Linux, dar îl puteți rula într-o mașină virtuală Windows cu xen sau qemu
NotTheDr01ds avatar
drapel vn
@lnee De acord, dar chiar și atunci nu într-o instanță/container AWS Ubuntu (care pare să fie ceea ce încearcă OP-ul) de orice fel, cu excepția cazului în care acceptă virtualizarea imbricată, pe care (AFAIK) o pot gestiona numai instanțele Ubuntu bare-metal din AWS.
lnee avatar
drapel td
dar am crezut că aws folosit xen
Puncte:3
drapel vn

Din comentarii, combinate cu întrebarea dvs., încercați să rulați:

  • un executabil Windows
  • ... în interiorul unei imagini Ubuntu Docker
  • ... în interiorul unei instanțe Ubuntu AWS EC2.

Acest lucru pur și simplu nu va funcționa. Pentru început, pentru a rula un executabil Windows în Docker, indiferent, trebuie să utilizați un Windows Imagine Docker. Încercați să utilizați imaginea Ubuntu.

Dar chiar dacă ar fi să încerci să folosești ceva de genul microsoft/windowservercore imagine ca bază, asta nu ar funcționa pe o instanță Ubuntu EC2. Docker este o tehnologie de containerizare care necesită ca baza sistemul de operare să poată rula aplicațiile, deoarece nucleul este partajat între gazdă și container.

În plus, sunt îngrijorat. S-ar putea să mă înșel, dar am impresia că executabilul pe care încercați să îl rulați este malware. Din cercetarea mea (desigur rapidă), Hydra Bot nu este distribuit ca un executabil (nici Windows, nici Linux). E o serviciu furnizate prin înregistrarea pe site-ul lor, apoi invitând botul pe canalul dvs. Discord.

Din nou, aș putea fi în afara bazei, dar dacă nu sunt -- Vă rugăm să confirmați sursa și să fiți foarte precaut să încercați să rulați executabile din surse nesigure.

L23P avatar
drapel es
În afara bazei! Este un bot pentru flota noastră (ca o breaslă/clan), suntem numiți „Hydra” un loc bun! Și mulțumesc foarte mult pentru răspuns. În cele din urmă, am decis să renunț la .exe presupunând că problema este ceea ce ați confirmat.Am pus botul să ruleze prin decompilarea fișierului .exe și doar folosind .json brut și .py etc necesare pentru un bot Discord normal. Cineva din flota noastră a trimis fișierul .exe crezând că ar fi mai ușor să-l rulați, mai degrabă decât să vă încurcați cu fișiere suplimentare. Motivul pentru care am apelat la o instanță Ubuntu a fost că NAS-ul lui o rula și așa o găzduia înainte să merg la AWS pentru găzduire.
NotTheDr01ds avatar
drapel vn
@L23P Excelent - Mă bucur să aud că ai făcut-o să funcționeze și cu siguranță ai făcut-o cum trebuie. `.exe` (pachetul Python compilat) are perfect sens acum -- Mulțumesc pentru explicație!

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.