IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

R Discussion :

API plumber et docker


Sujet :

R

  1. #1
    Membre actif

    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Septembre 2007
    Messages : 503
    Points : 291
    Points
    291
    Billets dans le blog
    1
    Par défaut API plumber et docker
    Bonjour,

    j'ai une demande d'un client pour construire une api qui lui renverrai des graphiques. je me suis tourné vers le package plumber, que j'arrive à faire tourner en local en me connectant sur nos bdd.

    Mais dockeriser l'api est une autre histoire!! le conteneur plante à chaque fois.
    Y aurait il une doc , un bon tuto pour dockeriser une api avec tous les packages tels que highcharter, RpostrgreSQL.....
    J'ai suivi l'article https://thinkr.fr/api-r-deux-temps-trois-mouvements/, j'arrive à faire mon conteneur, mais dès que j'ajoute une autre lib, ça plante....et pourtant à la création du conteneur, les installs sont faites, avec des choses comme ça dans le dockerfile :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    RUN R -e 'install.packages("attempt", repo = "http://cran.irsn.fr/")'
    RUN R -e 'install.packages("dplyr", repo = "http://cran.irsn.fr/")'
    RUN R -e 'install.packages("remotes", repo = "http://cran.irsn.fr/")'
    RUN R -e 'install.packages("plumber", repo = "http://cran.irsn.fr/")'
    merci d'avance de vos conseils

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Août 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2018
    Messages : 2
    Points : 5
    Points
    5
    Par défaut dependance
    Bonjour, quel est le message d'erreur ?? Il peut y avoir plusieurs problèmes, je pense notamment aux dépendances systèmes !

    Voici un lien qui peut vous aider !

    https://colinfay.me/r-db/

    Voici une bonne base de Dockerfile pour un API plumber

    Code dockerfile : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    FROM rocker/r-ver:4.0.3
    RUN apt-get update && apt-get install -y  git-core libcurl4-openssl-dev libgit2-dev libicu-dev libpq-dev libsodium-dev libssl-dev libxml2-dev make pandoc pandoc-citeproc && rm -rf /var/lib/apt/lists/*
    RUN echo "options(repos = c(CRAN = 'https://cran.rstudio.com/'), download.file.method = 'libcurl', Ncpus = 4)" >> /usr/local/lib/R/etc/Rprofile.site
    RUN R -e 'install.packages("remotes")'
    RUN Rscript -e 'remotes::install_version("magrittr",upgrade="never", version = "2.0.1")'
    RUN Rscript -e 'remotes::install_version("tibble",upgrade="never", version = "3.1.2")'
    RUN Rscript -e 'remotes::install_version("htmltools",upgrade="never", version = "0.5.1.1")'
    RUN Rscript -e 'remotes::install_version("httr",upgrade="never", version = "1.4.2")'
    RUN Rscript -e 'remotes::install_version("purrr",upgrade="never", version = "0.3.4")'
    RUN Rscript -e 'remotes::install_version("stringr",upgrade="never", version = "1.4.0")'
    RUN Rscript -e 'remotes::install_version("ggplot2",upgrade="never", version = "3.3.3")'
    RUN Rscript -e 'remotes::install_version("lubridate",upgrade="never", version = "1.7.9.2")'
    RUN Rscript -e 'remotes::install_version("DBI",upgrade="never", version = "1.1.1")'
    RUN Rscript -e 'remotes::install_version("RPostgres",upgrade="never", version = "1.3.1")'
    RUN Rscript -e 'remotes::install_version("plumber",upgrade="never", version = "1.0.0")'
    RUN Rscript -e 'remotes::install_version("dplyr",upgrade="never", version = "1.0.6")'

  3. #3
    Membre actif

    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Septembre 2007
    Messages : 503
    Points : 291
    Points
    291
    Billets dans le blog
    1
    Par défaut
    Effectivement, n'étant pas un spécialiste du tout de docker, je pense que j'ai un problème avec le dockerfile notamment pour les dépendances.

    L'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Error in stopOnLine(lineNum, file[lineNum], e) : 
     
      Error on line #4: '#library(highcharter)' - Error in library(RPostgreSQL): there is no package called ‘RPostgreSQL’
     
    Calls: plumb ... tryCatchList -> tryCatchOne -> <Anonymous> -> stopOnLine
     
    Execution halted
    le dockerfile
    Code dockerfile : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    FROM rocker/r-base
     
    RUN apt-get update -qq && apt-get install -y \
      git-core \
      libssl-dev \
      libsodium-dev \
      libcurl4-openssl-dev \
      xml2 \
      openssl
     
    RUN R -e 'install.packages("attempt", repo = "http://cran.irsn.fr/")'
    RUN R -e 'install.packages("RPostgreSQL", repo = "http://cran.irsn.fr/")'
    RUN R -e 'install.packages("DBI", repo = "http://cran.irsn.fr/")'
    RUN R -e 'install.packages("methods", repo = "http://cran.irsn.fr/")'
    RUN R -e 'install.packages("plumber", repo = "http://cran.irsn.fr/")'
    RUN R -e 'install.packages("swagger", repo = "http://cran.irsn.fr/")'
     
     
    RUN mkdir /usr/scripts
    COPY torun.R /usr/scripts/torun.R
     
    COPY plumber.R /usr/scripts/plumber.R
    EXPOSE 8000
    CMD Rscript /usr/scripts/torun.R

    Je vais essayer avec votre proposition de dockerfile

  4. #4
    Membre actif

    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Septembre 2007
    Messages : 503
    Points : 291
    Points
    291
    Billets dans le blog
    1
    Par défaut
    merci pour le dockerfile, j'ai réussi à faire tourner mon container !!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 12/02/2015, 22h51
  2. Documentation gratuite sur l'API Windows, COM, DCOM, OLE, etc.
    Par Community Management dans le forum Windows
    Réponses: 1
    Dernier message: 16/11/2006, 15h28
  3. FOnction api specifiant la position de la souris
    Par florent dans le forum C++Builder
    Réponses: 4
    Dernier message: 15/05/2002, 20h07
  4. faire un selection dans une image aves les APIs
    Par merahyazid dans le forum C++Builder
    Réponses: 3
    Dernier message: 30/04/2002, 10h44
  5. Une petite aide pour les API ?
    Par Yop dans le forum Windows
    Réponses: 2
    Dernier message: 04/04/2002, 21h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo