Devo distribuire un'applicazione a flask al motore di app google. Ho usato il docker e ci sono linee in Dockerfile:
ADD requirements.txt /app/requirements.txt RUN pip install -r /app/requirements.txt
Nel file requirements.txt:
Flask==0.12 gunicorn==19.6.0 boto==2.46.1 gcs-oauth2-boto-plugin==1.8 ffmpeg-normalize
Si suppone che installi installi tutte le dependencies. Ma in qualche modo "ffmpeg-normalizza" non è installato nelle istanze di motore google app.
Qualcuno mi può aiutare con questo?
Se c'è un altro modo migliore per eseguire l'installazione del pacchetto, sarò felice di andare con. Grazie!!
Questo potrebbe accadere per alcune ragioni. Ecco le mie ipotesi 🙂
Come fai a sapere che il pacchetto non viene installato? Puoi condividere l'output di build del gcloud app deploy
che si verifica quando si gcloud app deploy
?
Un'altra cosa da provare qui, per essere sicuri è quello di correre:
gcloud app instances list
Poi…
gcloud beta app instances ssh [instance] --service [svc] --version [v] --container gaeapp
Da lì, puoi trovarti nel contenitore e vedere esattamente quello che è stato installato.
Immagino che il pacchetto pip si sta installando, ma forse non hai appena installato la dipendenza nativa necessaria per ffmpeg. Ecco un esempio di come farlo con Docker + App Engine:
https://github.com/JustinBeckwith/next17/blob/master/videobooth/Dockerfile
Dal momento che stai già utilizzando il docker – cosa succede quando costruisci questo contenitore localmente? Hai provato:
docker build -t myapp . docker run -it -p 8080:8080 myapp
Speriamo che uno di questi possa aiutarti a capire cosa sta succedendo. Spero che questo ti aiuti!