Comment utiliser Docker pour créer un environnement de développeur Linux sur Synology Nas?

Comment utiliser Docker pour créer un environnement de développeur Linux sur Synology Nas?

Vous pouvez utiliser l'application officielle de Synology Virtual Machine Manager pour créer une machine virtuelle, installer n'importe quelle distribution Linux et travailler sur vos projets de développement sur la machine virtuelle. Vous pouvez faire de même dans un conteneur Docker en utilisant l'application officielle de Synology Docker. Bien que le développement d'une machine virtuelle soit beaucoup plus flexible que de se développer sur un conteneur (comme une machine virtuelle est comme un ordinateur à part entière), une machine virtuelle nécessite beaucoup de mémoire et de ressources système qu'un conteneur Docker.

Si votre Synology Nas n'a pas assez de mémoire ou si vous ne souhaitez pas mettre à niveau la mémoire de votre Synology NAS, vous pouvez utiliser Docker pour créer un environnement de développement Linux sur votre Synology NAS.

Dans cet article, je vais vous montrer comment créer un Ubuntu 20 personnalisé.04 LTS Docker Image, créez un conteneur à partir de celui-ci pour configurer un environnement de développement Linux à l'aide de Docker sur votre Synology NAS et y faire du développement à distance avec le code Visual Studio. Alors, commençons.

Des choses dont vous aurez besoin

Pour suivre cet article, vous devez avoir:

  • Synology Nas avec au moins 4 Go ou plus de mémoire installée
  • Docker Application installée sur votre Synology NAS
  • Ordinateur ou ordinateur portable pour se connecter à l'interface graphique Web de la synologie NAS
  • Connexion Internet sur votre Synology NAS et votre ordinateur / ordinateur portable

Si vous avez besoin d'aide pour installer le Docker App sur votre synologie NAS, alors vous pouvez lire l'article CONTUSTEURS DOCKER RUNE SUR LE SYNOLOGIE NAS à Linuxhint.com.

Création d'un dossier partagé de projets

Je voudrais garder tous mes projets dans un dossier séparé pour garder les choses organisées. Donc, je vais créer un nouveau dossier partagé Projets sur ma synologie nas. Si vous n'avez pas encore de dossier séparé pour conserver vos projets, vous pouvez faire la même chose.

Pour créer un nouveau dossier partagé Projets, cliquer sur Dossier partagé du Panneau de commande App, comme marqué dans la capture d'écran ci-dessous.

Cliquer sur Créer > Créer, comme marqué dans la capture d'écran ci-dessous.

Tapez Projets En tant que part Nom et sélectionnez un volume de stockage où vous souhaitez créer le dossier partagé dans le Emplacement menu déroulant et cliquez sur Suivant, comme marqué dans la capture d'écran ci-dessous.

Cliquer sur Suivant.

Cliquer sur Suivant.

Cliquer sur Appliquer.

Ensemble Lire écrire Autorisations pour les utilisateurs que vous souhaitez autoriser l'accès au partage et cliquez sur D'ACCORD.

Un nouveau dossier partagé Projets devrait être créé, comme vous pouvez le voir dans la capture d'écran ci-dessous.

Activer l'accès SSH à Synology NAS

Pour configurer un environnement de développement sur un conteneur Docker, vous devrez créer une image Docker personnalisée. Au moment d'écrire ces lignes, vous ne pouvez pas créer une image Docker personnalisée à partir de l'officiel Docker Application de votre synologie NAS en utilisant un Dockerfile. Mais, vous pouvez créer une image Docker personnalisée à l'aide d'un Dockerfile de la ligne de commande de votre synologie NAS.

Pour accéder à la ligne de commande de votre Synology NAS, vous devez activer SSH à partir du Panneau de commande appliquer.

Pour ce faire, ouvrez le Panneau de commande application et accéder à la Terminal et SNMP Section, comme marqué dans la capture d'écran ci-dessous.

Vérifier Activer le service SSH cocher et cliquez sur Appliquer, comme marqué dans la capture d'écran ci-dessous.

Le service SSH doit être activé sur votre Synology NAS.

Création d'un dossier pour l'image de conteneur

Créons un dossier dédié dans le docker dossier partagé pour garder le Dockerfile qui sera utilisé pour créer une image de conteneur Docker personnalisé.

Pour créer un nouveau dossier, ouvrez le Station application, sélectionnez le docker dossier partagé et cliquez sur Créer, comme marqué dans la capture d'écran ci-dessous.

Cliquer sur Créer le dossier.

Tapez Ubuntu-dev Comme le nom du dossier et cliquez sur D'ACCORD.

Un nouveau dossier Ubuntu-dev devrait être créé dans le docker dossier partagé, comme vous pouvez le voir dans la capture d'écran ci-dessous.

Création d'un Dockerfile pour l'image de conteneur

Créer un nouveau fichier Dockerfile dans le Ubuntu-dev / dossier et tapez dans les lignes suivantes dans le Dockerfile:

De Ubuntu: 20.04
Exécuter la mise à jour APT
Run apt install install local local-all -y
Exécuter les paramètres régionaux en_us.UTF-8
Exécutez Update-Locale Lang = EN_US.UTF-8
Env tz = Asie / Dhaka
Exécutez ln -snf / usr / share / zoneInfo / $ tz / etc / localtime && echo $ tz> / etc / fuseau horaire
Exécutez apt installer tzdata -y
Run apt install openssh-server sudo bash-completion arbre git -y
Exécuter userAdd -m -d / home / shovon -s / bin / bash -g sudo shovon
Exécuter echo 'shovon: secret' | chpasswd
Exécuter le service SSH Start
Exposer 22
Cmd ["/ usr / sbin / sshd", "-d"]

Une fois que vous avez terminé, enregistrez le Dockerfile.

Ici, la ligne 1 dit à Docker d'utiliser l'image officielle du hub docker Ubuntu: 20.04, Comme la base de l'image Docker personnalisée.

La ligne 3 met à jour le cache du référentiel du package APT en haut de l'image de base.

La ligne 4-6 configure les paramètres de paramètres régionaux de l'image. Je le définis sur en_us.UTF-8 Dans ce cas, mais vous pouvez le changer en un lieu de lieu différent si vous voulez.

La ligne 8-10 configure le fuseau horaire de l'image. Je le définis sur Asie / Dhaka. Remplacez-le par le fuseau horaire souhaité.

La ligne 12 installe le serveur OpenSSH, Git, Sudo, Bash Achèvement et l'utilitaire de ligne de commande de l'arborescence en haut de l'image de base.

La ligne 14-15 crée un nouvel utilisateur bousculade, sets / Home / Shovon En tant que répertoire domestique pour l'utilisateur, définit / bac / bash Comme le shell de connexion pour l'utilisateur, ajoute l'utilisateur Sudo groupe et définit le mot de passe de connexion secret pour l'utilisateur.

Vous voudrez créer un utilisateur avec un nom différent, définir un autre répertoire personnel et définir un mot de passe différent. Donc, modifiez le nom de nom d'utilisateur de connexion, le mot de passe et le chemin du répertoire domestique selon les besoins.

La ligne 17-19 démarre le service SSH et expose le port SSH 22 par défaut.

SSH dans la synologie NAS

Une fois que vous avez activé le service SSH, vous pouvez SSH dans le Synology NAS depuis votre ordinateur.

Pour vous connecter à la synologie NAS via SSH, ouvrez un terminal sur votre ordinateur et exécutez la commande suivante:

$ ssh shovon @ 192.168.0.110

NOTE: Ici, bousculade est le nom d'utilisateur de connexion et 192.168.0.110 L'adresse IP de ma synologie NAS est-elle. Ce sera différent pour vous. Alors, assurez-vous de le remplacer par le vôtre à partir de maintenant.

Au fur et à mesure que vous accédez à la synologie NAS via SSH pour la première fois, vous verrez l'invite suivante.

Tapez Oui et presser continuer.

Tapez votre mot de passe de connexion et appuyez sur.

Vous devriez être connecté à votre Synology NAS via SSH, comme vous pouvez le voir dans la capture d'écran ci-dessous.

Création d'une image Docker personnalisée pour le développement

Nous avons créé un Dockerfile dans le Ubuntu-dev / dossier du docker dossier partagé. Comme vous pouvez le voir, le docker Le dossier partagé est créé dans Volume 4 de votre Synology Nas.

Alors, accédez à / Volume4 Dossier de la ligne de commande de votre synologie NAS.

$ cd / volume4

Le docker Le dossier partagé doit être dans le / Volume4 dossier, comme vous pouvez le voir dans la capture d'écran ci-dessous.

$ ls

Accédez à la docker/ dossier.

$ cd docker /

Vous devriez trouver le Ubuntu-dev / dossier ici que vous avez créé plus tôt, comme vous pouvez le voir dans la capture d'écran ci-dessous.

$ ls

Accédez à la Ubuntu-dev / dossier.

$ cd ubuntu-dev /

Vous devriez trouver le Dockerfile Vous avez créé dans la section précédente de cet article ici, comme vous pouvez le voir dans la capture d'écran ci-dessous.

Pour créer une image Docker personnalisée Synology-Dev / Ubuntu: 20.04 du Dockerfile, Exécutez la commande suivante:

$ sudo docker build -t synologie-dev / ubuntu: 20.04 .

Tapez le mot de passe de connexion de votre Synology NAS et appuyez sur .

Une image Docker personnalisée est en cours de création. Cela peut prendre un certain temps pour terminer.

Une image Docker personnalisée est en cours de création.

Une image Docker personnalisée est en cours de création.

Une image Docker personnalisée est en cours de création.

À ce stade, une image Docker personnalisée Synology-Dev / Ubuntu: 20.04 devrait être créé.

Une fois l'image Docker personnalisée Synology-Dev / Ubuntu: 20.04 est créé, ouvrez le Docker application de l'interface graphique Web de votre synologie NAS.

Le Docker l'application doit être ouverte.

Dans le Image Section de la Docker App, vous devriez trouver l'image Docker personnalisée Synology-Dev / Ubuntu: 20.04, que vous venez de créer, comme vous pouvez le voir dans la capture d'écran ci-dessous.

Création d'un Ubuntu 20.04 LTS Development Container

Pour créer un nouveau conteneur à l'aide de l'image Docker personnalisée Synology-Dev / Ubuntu: 20.04, Sélectionnez-le et cliquez sur Lancement du Image Section de la Docker App, comme marqué dans la capture d'écran ci-dessous.

Tapez un Nom de conteneur.

Je vais l'appeler S01. Tu peux appeler ça comme tu le veux.

Cliquer sur Réglages avancés, comme marqué dans la capture d'écran ci-dessous.

Vérifier la Activer l'automobile cocher la boîte à partir du Réglages avancés Onglet du Réglages avancés fenêtre.

Accédez à la Volume Onglet du Réglages avancés fenêtre.

Pour ajouter le Projets Dossier partagé (que vous avez créé dans la section précédente de cet article pour stocker tous les fichiers de projet) dans le conteneur, cliquez sur Ajouter le dossier, comme marqué dans la capture d'écran ci-dessous.

Sélectionnez le Projets Dossier partagé de la liste et cliquez sur Sélectionner.

Une nouvelle entrée doit être ajoutée, comme vous pouvez le voir dans la capture d'écran ci-dessous.

Tapez le chemin où vous souhaitez monter le Projets Dossier partagé sur votre conteneur.

Je vais monter le Projets dossier partagé dans le chemin / Home / Shovon / Projets.

Accédez à la Paramètres du port onglet de la Réglages avancés fenêtre.

Tapez dans le Port local nombre 2222 pour le Port de conteneur nombre 22, comme marqué dans la capture d'écran ci-dessous.

Une fois que vous avez terminé, cliquez sur Appliquer.

Cliquer sur Suivant.

Cliquer sur Appliquer.

Un nouveau conteneur S01 devrait être créé, comme vous pouvez le voir dans le Récipient Section de la Docker appliquer.

Fixation des projets Permis de dossier partagé pour le conteneur

Maintenant, vous devez Ssh dans le conteneur Docker S01 et corriger les autorisations pour votre Projets dossier partagé.

Vous pouvez Ssh dans le conteneur Docker S01 de votre ordinateur avec la commande suivante:

$ ssh -p 2222 shovon @ 192.168.0.110

NOTE: Ici, bousculade est le nom d'utilisateur de connexion du conteneur docker. 192.168.0.110 est l'adresse IP de votre Synology Nas et 2222 est le numéro de port transmis du conteneur docker. Ce sera différent pour vous. Alors, assurez-vous de le remplacer par le vôtre à partir de maintenant.

Lorsque vous vous connectez au conteneur Docker S01 Pour la première fois, vous verrez l'invite suivante.

Tapez Oui et presser .

Tapez le mot de passe de connexion (secret, Dans mon cas) de votre conteneur Docker S01 et presser .

Vous devez être connecté au conteneur Docker S01 via SSH, comme vous pouvez le voir dans la capture d'écran ci-dessous.

Pour modifier le propriétaire et le groupe de tous les fichiers et dossiers de votre Projets dossier partagé à l'utilisateur de connexion et au groupe du conteneur Docker S01, Exécutez la commande suivante:

$ sudo chown -rfv $ (whoami): $ (whoami) ~ / projets

NOTE: J'ai monté le Projets dossier partagé dans le ~ / projets dossier du conteneur docker S01. Vous l'avez peut-être monté ailleurs. Alors, assurez-vous de remplacer le chemin du répertoire par le vôtre à partir de maintenant.

Le propriétaire et le groupe de tous les fichiers et répertoires du Projets Le dossier partagé doit être modifié pour l'utilisateur de connexion et le groupe du conteneur Docker S01.

Maintenant, définissez les autorisations correctes pour le Projets dossier partagé monté dans le ~ / projets dossier du conteneur docker S01 avec la commande suivante:

$ sudo chown -rfv 775 ~ / projets

Les autorisations de fichiers et de répertoires correctes pour le Projets Le dossier partagé doit être défini.

Configurer le développement à distance sur le conteneur avec le code Visual Studio

Code Visual Studio prend en charge nativement le développement à distance. Vous pouvez faire installer le code Visual Studio sur un ordinateur (Windows / Linux / MacOS) et vous connecter au conteneur Docker S01 Courir sur votre Synology Nas via SSH et faire à distance vos projets de développement là-bas. Votre ordinateur et le Synology Nas doivent être dans le même réseau pour que cela fonctionne.

Voyons comment faire un développement à distance sur le conteneur Docker S01 Exécution sur le Synology NAS en utilisant le code Visual Studio.

Démarrez l'éditeur de code Visual Studio sur votre ordinateur. J'utilise Visual Studio Code sur mon ordinateur Windows 10.

Maintenant, vous devez installer le Développement à distance extension sur Code Visual Studio pour faire un développement à distance.

Pour installer le Développement à distance extension, cliquez sur le Extensions icône, recherchez le développement à distance Extension, cliquez sur Développement à distance, et cliquez sur Installer, comme marqué dans la capture d'écran ci-dessous.

Le Développement à distance L'extension doit être installée.

Une fois la Développement à distance L'extension est installée, vous devriez voir l'icône suivante () dans le coin inférieur gauche du code Visual Studio, comme marqué dans la capture d'écran ci-dessous.

Pour ajouter le conteneur Docker S01 Exécution sur votre Synology NAS vers Visual Studio Code pour le développement à distance, cliquez sur l'icône de développement à distance .

Cliquer sur Remote-SSH: connectez la fenêtre actuelle à l'hébergement… , comme marqué dans la capture d'écran ci-dessous.

Tapez shovon @ 192.168.0.110: 2222 et presser .

Ici, bousculade est le nom d'utilisateur de connexion du conteneur docker S01, 192.168.0.110 est l'adresse IP de ma synologie NAS, et 2222 est le numéro de port transmis du conteneur docker S01. Le nom d'utilisateur, l'adresse IP et le numéro de port seront différents pour vous. Alors assurez-vous de les remplacer par le vôtre.

Cliquer sur Linux.

Cliquer sur Continuer.

Tapez le mot de passe de connexion du conteneur Docker S01 et presser .

Visual Studio Code téléchargera tous les fichiers requis sur le conteneur Docker S01 et préparer le conteneur pour le développement à distance. Cela peut prendre un certain temps pour terminer.

À ce stade, tous les fichiers requis doivent être téléchargés dans le conteneur Docker S01, Et le code Visual Studio devrait être prêt pour le développement à distance.

Pour ouvrir un dossier de projet à partir du Projets dossier partagé, cliquez sur Déposer > Dossier ouvert… , comme marqué dans la capture d'écran ci-dessous.

Comme vous pouvez le voir, tous les dossiers disponibles du conteneur Docker S01 sont affichés. Clique sur le projets dossier.

J'ai copié un simple projet C ++ Exploration-CPP11 sur le Projets Dossier partagé de ma synologie NAS. Donc, le dossier apparaît dans le projets/ dossier du conteneur docker S01, Comme vous pouvez le voir dans la capture d'écran ci-dessous. Je vais l'utiliser pour montrer comment faire un développement à distance sur un conteneur Docker fonctionnant sur votre Synology Nas.

Vous voudrez peut-être ouvrir un dossier de projet différent. Vous pouvez également créer un dossier de projet vide et l'ouvrir avec Visual Studio Code et suivre.

Pour ouvrir un dossier de projet avec Visual Studio Code, cliquez dessus. Comme je veux ouvrir le Exploration-CPP11 / dossier de projet, je vais cliquer dessus.

Une fois que vous êtes dans le dossier du projet, que vous souhaitez ouvrir avec Visual Studio Code, cliquez sur D'ACCORD.

On peut vous demander de saisir le mot de passe de connexion de votre conteneur Docker S01. Tapez le mot de passe de connexion de votre conteneur Docker S01 et presser .

Le dossier du projet doit être ouvert avec Visual Studio Code, comme vous pouvez le voir dans la capture d'écran ci-dessous.

Dans mon dossier de projet, j'ai un comprend / dossier, src / dossier, et un Cmakelists.SMS déposer.

Dans le comprend / dossier, j'ai un fichier d'en-tête C ++ Imprimante.H et dans le src / dossier; J'ai 2 fichiers source C ++ principal.cpp et Imprimante.cpp, Comme vous pouvez le voir dans la capture d'écran ci-dessous.

Le contenu du fichier source C ++ SRC / Main.cpp est donné dans la capture d'écran ci-dessous.

Le contenu du fichier source C ++ SRC / imprimante.cpp est donné dans la capture d'écran ci-dessous.

Le contenu du fichier d'en-tête C ++ Comprend / imprimante.H est donné dans la capture d'écran ci-dessous.

Le contenu du fichier de configuration Cmake Cmakelists.SMS est donné dans la capture d'écran ci-dessous.

Une fois que vous avez créé un Cmakelists.SMS Fichier et saisir le contenu suivant sur le fichier, Visual Studio Code devrait détecter que vous utilisez CMake et il vous demandera d'installer les extensions Cmake requises. Cliquer sur Installer.

Les extensions Cmake requises doivent être installées.

Une fois les extensions CMake requises installées, la mise en évidence automatique et la mise en évidence de la syntaxe devraient fonctionner pour les fichiers de configuration Cmake, comme vous pouvez le voir dans la capture d'écran ci-dessous.

Une fois que vous avez créé tous les fichiers et dossiers requis pour le projet, cliquez sur Terminal > Nouveau terminal Pour ouvrir une nouvelle fenêtre de terminal.

Une nouvelle fenêtre de terminal doit être ouverte, comme vous pouvez le voir dans la capture d'écran ci-dessous.

Pour compiler le programme C ++, vous devez installer un compilateur C ++ et les outils de construction CMake sur votre conteneur Docker S01.

Pour ce faire, exécutez la commande suivante:

$ sudo apt install build-essentiel cmake -y

Le compilateur C ++ et les outils de construction CMake sont en cours de téléchargement. Cela peut prendre quelques secondes pour terminer.

Le compilateur C ++ et les outils de construction CMake sont en cours.

À ce stade, le compilateur C ++ et les outils de construction CMake doivent être installés.

Maintenant, créez un construire/ dossier avec la commande suivante:

$ mkdir -pv build

Accédez à la construire/ dossier avec la commande suivante:

$ cd build /

Générer des fichiers de configuration Cmake Build pour le projet C ++ avec la commande suivante:

$ cmake…

Les fichiers de configuration CMake Build doivent être générés.

Comme vous pouvez le voir, MakeFile et d'autres fichiers de configuration CMake sont générés dans le construire/ dossier.

$ ls -lh

Pour compiler le projet C ++ à l'aide de CMake, exécutez la commande suivante:

$ CMake --Build .

Le projet C ++ doit être compilé, comme vous pouvez le voir dans la capture d'écran ci-dessous.

Une fois le projet C ++ compilé, un nouveau fichier exécutable appliquer devrait être créé dans le construire/ dossier, comme vous pouvez le voir dans la capture d'écran ci-dessous.

Vous pouvez exécuter le fichier exécutable compilé appliquer, comme suit:

$ ./ application

Comme vous pouvez le voir, la sortie correcte est imprimée sur la console.

C'est ainsi que vous utilisez Docker pour créer un environnement de développement Linux sur votre Synology NAS et faire du développement à distance sur Docker Contaters à l'aide du code Visual Studio.

Conclusion

Dans cet article, je vous ai montré comment utiliser Docker pour créer un environnement de développeur Linux sur votre Synology NAS et faire du développement distant sur des conteneurs Docker à l'aide du code Visual Studio. En dehors de cela, comment vous pouvez utiliser l'ubuntu officiel 20.04 LTS Docker Hub Image Pour créer un Ubuntu 20 personnalisé.04 LTS Image docker pour configurer un environnement de développement Docker est également enseigné ici. Vous pouvez faire de même avec d'autres images du système d'exploitation (i.e., Centos, Debian).