Πώς να εγκαταστήσετε το Odoo με το docker και να προσθέσετε εξωτερικές μονάδες

Στο άρθρο Βήμα προς βήμα για να δημιουργήσετε ένα ERP και CRM για τις ΜΜΕ σας Διδάξαμε πώς να τρέξουμε μια εικονική μηχανή που είχε μια προκαθορισμένη εγκατάσταση του Odoo 8, η οποία μας επέτρεψε να απολαύσουμε αυτό το ERP με έναν απλό και γρήγορο τρόπο, αυτή τη φορά θέλουμε να εισέλθουμε στον κόσμο του Docker και να εγκαταστήσουμε το Odoo χρησιμοποιώντας αυτήν την εξαιρετική τεχνολογία.

Βασικά με αυτό το σεμινάριο θα μάθετε πώς να εγκαταστήσετε το Odoo με το docker και να προσθέσετε εξωτερικές μονάδες που θα σας επιτρέψουν να βελτιώσετε και να επεκτείνετε τις λειτουργίες του Odoo. Χάρη στο docker, μπορείτε να έχετε οποιαδήποτε έκδοση του Odoo στον ίδιο υπολογιστή και να εκτελείτε πολλές παρουσίες, οι οποίες θα διευκολύνουν την ανάπτυξη και την εκκίνηση ανά πάσα στιγμή, σε οποιονδήποτε οργανισμό και ειδικά σε οποιοδήποτε περιβάλλον.

Η διαδικασία είναι αρκετά απλή, αλλά θα προσπαθήσω να την κάνω όσο το δυνατόν πιο λεπτομερή, τα βήματα και οι διαδικασίες θα επικεντρωθούν σε διανομές με το Ubuntu 16.04 αλλά μπορούν να εφαρμοστούν εύκολα σε οποιαδήποτε διανομή Linux.

Βήματα για την εγκατάσταση του Docker και του Docker Compose

Εγκαταστήστε το Docker

Για να εγκαταστήσετε το Docker στο Ubuntu, πρέπει απλώς να εκτελέσουμε την ακόλουθη εντολή:

sudo apt-get install docker.io

Προσθέστε τον χρήστη σας στην ομάδα Docker

Πρέπει να εκτελέσουμε την ακόλουθη εντολή:

sudo gpasswd -a ${USER} docker

Εγκαταστήστε το Docker-compose

Ο ευκολότερος τρόπος για να εγκαταστήσετε το Docker-ompose είναι να χρησιμοποιήσετε το pip, για να το κάνετε αυτό εκτελέστε την ακόλουθη εντολή:

pip install docker-compose

Εγκαταστήστε τον κινητήρα Docker

Εγκαταστήστε το docker-engine με την ακόλουθη εντολή:

sudo curl -sSL https://get.docker.com/ | sh

Επανεκκινήστε το Docker

Για να ληφθούν σωστά όλες οι αλλαγές, είναι βολικό να κάνετε επανεκκίνηση του docker χρησιμοποιώντας:

sudo service docker restart

Δημιουργία του αρχείου docker-compose.yml

Μόλις εγκαταστήσουμε το docker, πρέπει να δημιουργήσουμε το αρχείο docker-compose.yml Στον κατάλογο των προτιμήσεών μας, θα περιέχει βασικά όλες τις απαραίτητες πληροφορίες για την ανάπτυξη της υπηρεσίας μας με το Odoo.

nano docker-compose.yml

Αυτό το αρχείο θα περιέχει τα εξής:

έκδοση: '2' υπηρεσίες: odoo: image: odoo: 8 επανεκκίνηση: πάντα θύρες: - "8069: 8069" σύνδεσμοι: - τόμοι db: - ./extra-addons:/mnt/extra-addons db: image: postgres: 9.4 επανεκκίνηση: πάντα περιβάλλον: - POSTGRES_USER = odoo - POSTGRES_PASSWORD = odoo

Σε αυτό το αρχείο μπορούμε να κάνουμε τις ακόλουθες αλλαγές για να το προσαρμόσουμε στις απαιτήσεις μας:

  • image: odoo:8 : Μπορείτε να αντικαταστήσετε το odoo: 8 με την έκδοση που χρειάζεστε odoo: 9, odoo: 10, odoo11 ή απλά odoo: τελευταία για την τελευταία διαθέσιμη έκδοση.
  • ports: - "8069:8069" : Αντικαταστήστε την πρώτη θύρα με τη θύρα που θέλετε, αυτό θα σας βοηθήσει να εκτελέσετε ταυτόχρονα πολλαπλές περιπτώσεις odoo, για παράδειγμα θα μπορούσε να μοιάζει με αυτό, ports: - "8070:8069"ports: - "8071:8069" και ούτω καθεξής
  • image: postgres:9.4 : Μπορείτε επίσης να αντικαταστήσετε την εικόνα postgres που θέλετε να χρησιμοποιήσετε, ειδικά αυτή η έκδοση μου ταιριάζει αρκετά καλά.

Σε γενικές γραμμές συμβαίνει με αυτό docker-compose.yml Επικαλούμεμε ένα σύνολο κοντέινερ που σχετίζονται μεταξύ τους, όπως το κοντέινερ της έκδοσης odoo και το κοντέινερ postgres, επίσης για το πρώτο κοντέινερ δηλώνουμε ότι θα ακούσει τη θύρα 8069 (και θα μπορεί να έχει πρόσβαση σε αυτό που υποδεικνύουμε) και Επιπλέον, τοποθετείται ένας τοπικός τόμος που ονομάζεται extra-addons που θα συνδέεται αυτόματα με τα / mnt / extra-addons στο κοντέινερ odoo.

Τέλος, περιγράφεται το όνομα χρήστη και ο κωδικός πρόσβασης για postgres και καθορίζεται ότι όταν ο κεντρικός υπολογιστής επανεκκινήσει την υπηρεσία docker, θα το κάνει επίσης, χάρη στην παράμετρο επανεκκίνησης: πάντα.

Αρχική ρύθμιση του Odoo

Μόλις δημιουργήσουμε το δικό μας docker-compose.yml, πρέπει να ξεκινήσουμε την εμφάνιση του Odoo, για να το κάνουμε αυτό από το τερματικό πηγαίνουμε στον κατάλογο όπου το αρχείο που δημιουργήθηκε προηγουμένως είναι και εκτελούμε:

docker-compose up -d

Η λήψη των απαραίτητων κοντέινερ docker θα ξεκινήσει αυτόματα, η βάση δεδομένων θα ξεκινήσει και θα είμαστε σε θέση να αποκτήσουμε πρόσβαση στην παρουσία μας odoo από localhost:8069 ή τη θύρα που καθορίσατε. Μόλις εισαχθεί, θα είναι απαραίτητο να δημιουργήσουμε τη βάση δεδομένων μας, για την οποία πρέπει να επιλέξουμε το email, τον κωδικό πρόσβασης, τη γλώσσα και τη γλώσσα, εκτός από την επιλογή εάν θέλουμε να εισαγάγουμε δεδομένα δοκιμών για την αξιολόγηση του Odoo.

Μόλις δημιουργηθεί η βάση δεδομένων μπορούμε να έχουμε πρόσβαση στο odoo και να αρχίσουμε να απολαμβάνουμε τα οφέλη της.

Προσθήκη εξωτερικών ενοτήτων στο Odoo

El docker-compose.yml που δημιουργήσαμε σε προηγούμενα βήματα, εκτός από την αύξηση των απαραίτητων εικόνων odoo και postgres, δημιουργεί επίσης έναν τόμο στον κατάλογό μας για να μπορούμε να προσθέτουμε εξωτερικές ενότητες στην παρουσία μας. Για να γίνει αυτό, αρκεί να αντιγράψουμε μια λειτουργική μονάδα συμβατή με την έκδοση του odoo που έχουμε εκτελέσει στον εν λόγω κατάλογο, μπορείτε να προσθέσετε τις δικές σας ενότητες ή να τις κατεβάσετε από Εφαρμογές Odoo.

Μόλις έχουμε την ενότητα μας στον κατάλογο extra-addons (χωρίς φερμουάρ) που βρίσκεται στον κατάλογο όπου έχουμε docker-compose.yml, προχωράμε να του δώσουμε τα αντίστοιχα δικαιώματα, ώστε να μπορεί να διαβαστεί από τον λιμενεργάτη μας. Ο απλός τρόπος είναι αυτός που βρίσκεται στον γονικό κατάλογο των πρόσθετων προσθέτουμε τις ακόλουθες εντολές από το τερματικό:

sudo chown -R σαύρα: σαύρα extra-addons / #replace lizard with your user sudo chmod -R 755 extra-addons /

Τώρα από την παρουσία μας odoo πρέπει να ενεργοποιήσουμε τη λειτουργία προγραμματιστή η οποία, ανάλογα με την έκδοση του odoo που έχετε, μπορεί να γίνει ως εξής:

Ενεργοποιήστε τη λειτουργία προγραμματιστή στο Odoo 8

Η λειτουργία ανάπτυξης στο Odoo 8 ενεργοποιείται από τα προφίλ χρήστη, για να γίνει αυτό από το μενού πρόσβαση στην κατηγορία χρήστη, εντοπίστε τον χρήστη διαχειριστή σας και στο κάτω δεξί μέρος ενεργοποιήστε τα χαρακτηριστικά

λειτουργία προγραμματιστή στο odoo 8

Ενεργοποιήστε τη λειτουργία προγραμματιστή στο Odoo 9

Στο Odoo 9, μεταβείτε στην επάνω δεξιά γωνία και κάντε κλικ στην ημερομηνία που βρίσκεται δίπλα στη φωτογραφία προφίλ του χρήστη και, στη συνέχεια, μεταβείτε στην επιλογή Σχετικά και στο παράθυρο που ανοίγει επιλέξτε Ενεργοποίηση λειτουργίας προγραμματιστή.

λειτουργία προγραμματιστή στο odoo 9

Ενεργοποιήστε τη λειτουργία προγραμματιστή στο Odoo 10 και στο Odoo 11

Για να ενεργοποιήσουμε τη λειτουργία προγραμματιστή στο Odoo 10 και 11 πρέπει να μεταβούμε στο μενού Ρυθμίσεις και στο κάτω δεξί μέρος κάντε κλικ στο Ενεργοποίηση λειτουργίας προγραμματιστή.

λειτουργία προγραμματιστή στο odoo 10

λειτουργία προγραμματιστή στο odoo 11

Τέλος, σε οποιαδήποτε από τις εκδόσεις πρέπει να μεταβούμε στο μενού τοπικών ενοτήτων ή εφαρμογών και να κάνουμε κλικ στον σύνδεσμο για να ενημερώσετε τη λίστα των ενοτήτων και, στη συνέχεια, μπορείτε να εγκαταστήσετε τις ενότητες όπως εξηγείται στο άρθρο σχετικά με Πώς να εγκαταστήσετε λειτουργικές μονάδες στο Odoo.

Εγκατάσταση πακέτων στο docker μας

Ίσως οποιαδήποτε από τις μονάδες ή τα βοηθητικά προγράμματα που θέλετε να ενσωματώσετε στο odoo (ή ένα χαρακτηριστικό του ίδιου του odoo) χρειάζεται την εγκατάσταση εξωτερικών πακέτων, αυτό μπορεί να γίνει αρκετά εύκολο στο docker χάρη στο docker exec που είναι ένα βοηθητικό πρόγραμμα που μας επιτρέπει να εκτελούμε εντολές σε ένα κοντέινερ.

Το πρώτο πράγμα που πρέπει να γνωρίζουμε είναι το όνομα της παρουσίας του docker, το οποίο γίνεται με την ακόλουθη εντολή:

docker ps

Για να εγκαταστήσουμε μια εφαρμογή ως root σε ένα docker πρέπει να εκτελέσουμε την ακόλουθη εντολή προσαρμόζοντάς την στις ανάγκες σας:

docker exec -u root odoo9_odoo_1 pip install xlsxwriter

Όπου docker exec -u root odoo9_odoo_1  υποδηλώνει ότι μια εντολή θα εκτελεστεί ως ρίζα στην παρουσία odoo9_odoo_1 και pip install xlsxwriter θα ήταν η εντολή που θέλετε να εκτελέσετε.

Τέλος, θα ήθελα να μοιραστώ πολλές εντολές που θα είναι χρήσιμες όταν συνεργάζομαι με τον συνθέτη

# Τρέχει από τον κατάλογο μιας παρουσίας docker και για το docker-compose που εκτελεί το docker-composer stop # Τρέχει από τον κατάλογο μιας παρουσίας docker και ξεκινά την έναρξη του docker-compose docker stop $ (docker ps -a -q) # Διαγραφή όλων των δοχείων docker rm $ (docker ps -a -q) # Διαγραφή όλων των εικόνων docker rmi $ (εικόνες docker -q)

Ελπίζω το σεμινάριο να σας αρέσει, σε μελλοντικά άρθρα θα αρχίσουμε να μαθαίνουμε πώς να χρησιμοποιούμε το Odoo και να το διαμορφώνουμε στις ΜΜΕ μας.


Αφήστε το σχόλιό σας

Η διεύθυνση email σας δεν θα δημοσιευθεί. Τα υποχρεωτικά πεδία σημειώνονται με *

*

*

  1. Υπεύθυνος για τα δεδομένα: Miguel Ángel Gatón
  2. Σκοπός των δεδομένων: Έλεγχος SPAM, διαχείριση σχολίων.
  3. Νομιμοποίηση: Η συγκατάθεσή σας
  4. Κοινοποίηση των δεδομένων: Τα δεδομένα δεν θα κοινοποιούνται σε τρίτους, εκτός από νομική υποχρέωση.
  5. Αποθήκευση δεδομένων: Βάση δεδομένων που φιλοξενείται από τα δίκτυα Occentus (ΕΕ)
  6. Δικαιώματα: Ανά πάσα στιγμή μπορείτε να περιορίσετε, να ανακτήσετε και να διαγράψετε τις πληροφορίες σας.

  1.   Guillermo dijo

    Magnífico tutorial, a ver si saco tiempo para ponerlo en práctica: tanto por Odoo como por Docker parece muy interesante. Por ahora estoy liado a ver si aprendo algo de web-scraping usando rstudio y un docker de selenium-firefox, algo a explorar por DesdeLinux.

    1.    json dijo

      Το σελήνιο δεν είναι για ξύσιμο αλλά για περιτύλιγμα. Μόνο το alcaro XD scraping είναι μόνο για ανάγνωση δεδομένων.

      1.    Guille dijo

        Λοιπόν, προσπαθώ να μάθω πώς να διαβάζω δεδομένα από ιστούς και να τα βάζω σε δομημένο πίνακα ή πίνακες για χειρισμό αργότερα. Σύμφωνα με την Wikipedia:
        Το web scraping είναι μια τεχνική που χρησιμοποιείται από προγράμματα λογισμικού για την εξαγωγή πληροφοριών από ιστότοπους. Συνήθως, αυτά τα προγράμματα προσομοιώνουν την πλοήγηση ενός ανθρώπου στον Παγκόσμιο Ιστό είτε χρησιμοποιώντας το πρωτόκολλο HTTP με μη αυτόματο τρόπο είτε ενσωματώνοντας ένα πρόγραμμα περιήγησης σε μια εφαρμογή.
        Το Wrapper στην εξόρυξη δεδομένων είναι ένα πρόγραμμα που εξάγει περιεχόμενο μιας συγκεκριμένης πηγής πληροφοριών και το μεταφράζει σε σχεσιακή μορφή. [1] Πολλές ιστοσελίδες παρουσιάζουν δομημένα δεδομένα - τηλεφωνικούς καταλόγους, καταλόγους προϊόντων κ.λπ. μορφοποιημένο για ανθρώπινη περιήγηση χρησιμοποιώντας γλώσσα HTML.
        Μπορεί να είναι πιο αναδιπλούμενο, επειδή είναι πληροφορίες δομημένες σε πίνακες, ναι. Είναι πολύ ενδιαφέρον.

  2.   vistor dijo

    Είναι δυνατόν να το εγκαταστήσετε σε ένα Raspberry pi με το Ubuntu Mate;

    1.    lagarto dijo

      Εάν είναι δυνατόν, ας δούμε αν με λίγο χρόνο μπορώ να κάνω ένα σεμινάριο για το θέμα

      1.    Έκτορας dijo

        αυτό θα ήταν εξαιρετικό, έχω πολλά PI που μαζεύουν σκόνη

        1.    lagarto dijo

          Και χρειάζομαι ένα για δοκιμή 🙁

  3.   ανώνυμος dijo

    Πώς μπορώ να πραγματοποιήσω λήψη με ισπανική γλώσσα; Άρα η εφαρμογή είναι στα Ισπανικά και αν υπάρχει για Windows;

    1.    lagarto dijo

      Κατά τη δημιουργία της βάσης δεδομένων μπορείτε να επιλέξετε τη γλώσσα της προτίμησής σας, εάν λειτουργεί και στα Windows (διαθέτει πρόγραμμα εγκατάστασης από τη σελίδα odoo)

  4.   νικητής dijo

    Γεια, προσπαθώ να το εγκαταστήσω σε ένα Raspberry pi 3 και να τρέξω το σενάριο Docker:
    docker-συνθέστε μέχρι -d

    Λαμβάνω το ακόλουθο σφάλμα:

    ΣΦΑΛΜΑ: δεν υπάρχει αντιστοίχιση μανιφέστο για linux / arm στις καταχωρήσεις λίστας δηλωτικών.

    Σας ευχαριστώ.

  5.   Ιησούς dijo

    Το σεμινάριο είναι πολύ καλό, ευχαριστώ και πώς θα εγκατασταθούν οι υπόλοιπες παρουσίες, δεν είναι πολύ σαφές για μένα, πρέπει να βάλετε περισσότερα στο αρχείο docker-compose.yml, ευχαριστώ

  6.   Brayhan jaramillo dijo

    Θα μπορούσατε να με βοηθήσετε να βρω το μονοπάτι των πρόσθετων, είμαι σε Mac; Ευχαριστώ πολύ

  7.   Γκονζάλο dijo

    Πώς θα ήταν η εγκατάσταση της εταιρικής έκδοσης;

  8.   Danilo dijo

    Γεια σας, πώς θα ήταν αν χρειαστεί να ενημερώσω μια ενότητα που προγραμματίζω από το τερματικό;