Hvordan bruke Docker til å lage et Linux -utviklermiljø på Synology NAS?

Hvordan bruke Docker til å lage et Linux -utviklermiljø på Synology NAS?

Du kan bruke den offisielle Synology Virtual Machine Manager -appen til å lage en virtuell maskin, installere hvilken som helst Linux -distribusjon og jobbe med utviklingsprosjektene dine på den virtuelle maskinen. Du kan gjøre det samme i en Docker -beholder ved hjelp av den offisielle Synology Docker -appen. Selv om det er mye mer fleksibelt å utvikle seg på en virtuell maskin enn å utvikle seg på en beholder (ettersom en virtuell maskin er som en fullverdig datamaskin), krever en virtuell maskin mye minne og systemressurser enn en Docker-beholder.

Hvis synologien din ikke har nok minne eller du ikke vil oppgradere minnet om synologien din NAS, kan du bruke Docker til å skape et Linux -utviklingsmiljø på synologien din NAS.

I denne artikkelen skal jeg vise deg hvordan du lager en tilpasset Ubuntu 20.04 LTS Docker Image, lag en beholder fra det for å sette opp et Linux -utviklingsmiljø ved hjelp av Docker på din Synology NAS, og gjør ekstern utvikling der med Visual Studio Code. Så la oss komme i gang.

Ting du trenger

For å følge denne artikkelen, må du ha:

  • Synology NAS med minst 4 GB eller mer minnet installert
  • Docker App installert på synologien din NAS
  • Datamaskin eller bærbar PC for å koble til Web GUI for synologien NAS
  • Internett -tilkobling på synologien din NAS og datamaskin/bærbar PC

Hvis du trenger hjelp til å installere Docker App på synologien din NAS, så kan du lese artikkelen Kjør Docker Containers on Synology NAS Linuxhint.com.

Opprette en delte mappe

Jeg vil gjerne beholde alle prosjektene mine i en egen mappe for å holde ting organisert. Så jeg skal opprette en ny delt mappe Prosjekter På synologien min NAS. Hvis du ikke har en egen mappe for å oppbevare prosjektene dine ennå, kan du gjøre det samme.

For å opprette en ny delt mappe Prosjekter, Klikk på Delt mappe fra Kontrollpanel app, som merket i skjermbildet nedenfor.

Klikk på Skape > Skape, Som merket på skjermbildet nedenfor.

Skriv inn Prosjekter som andelen Navn og velg et lagringsvolum der du vil opprette den delte mappen fra plassering rullegardinmeny og klikk på NESTE, Som merket på skjermbildet nedenfor.

Klikk på NESTE.

Klikk på NESTE.

Klikk på Søke om.

Sett Les Skriv Tillatelser for brukerne at du vil tillate tilgang til delingen og klikke på Ok.

En ny delt mappe Prosjekter skal opprettes, som du kan se på skjermbildet nedenfor.

Aktiver SSH -tilgang til synologi NAS

For å sette opp et utviklingsmiljø på en Docker -beholder, må du lage et tilpasset Docker -bilde. På dette tidspunktet kan du ikke lage et tilpasset Docker -bilde fra tjenestemannen Docker app av synologien din nas ved hjelp av en Dockerfile. Men du kan lage et tilpasset Docker -bilde ved hjelp av en Dockerfile Fra kommandolinjen til synologien din NAS.

For å få tilgang til kommandolinjen til synologien din, må du aktivere SSH fra Kontrollpanel app.

For å gjøre det, åpne Kontrollpanel app og naviger til Terminal & SNMP seksjon, som merket i skjermbildet nedenfor.

Kryss av Aktiver SSH -tjeneste avkrysningsrute og klikk på Søke om, Som merket på skjermbildet nedenfor.

SSH -tjeneste skal være aktivert på synologien din NAS.

Opprette en mappe for containerbildet

La oss opprette en dedikert mappe i Docker delt mappe for å beholde Dockerfile som vil bli brukt til å lage et tilpasset Docker -containerbilde.

For å opprette en ny mappe, åpne Filstasjon app, velg Docker delt mappe, og klikk på Skape, Som merket på skjermbildet nedenfor.

Klikk på Lag mappe.

Skriv inn Ubuntu-dev Som mappenavn og klikk på Ok.

En ny mappe Ubuntu-dev skal opprettes i Docker Delt mappe, som du kan se på skjermbildet nedenfor.

Opprette en DockerFile for containerbildet

Lag en ny fil Dockerfile i ubuntu-dev/ mappe og skriv inn følgende linjer i Dockerfile:

Fra Ubuntu: 20.04
Kjør APT -oppdatering
Kjør apt installer lokaliteter lokaliteter -alle -y
Kjør lokalitet-gen en_us.UTF-8
Kjør oppdatering-LOCALE LANG = EN_US.UTF-8
Env tz = Asia/dhaka
Kjør Ln -Snf/usr/share/soneinfo/$ tz/etc/localime && ekko $ tz>/etc/timezone
Kjør appt installer tzdata -y
Kjør apt install openssh-server sudo bash-completion tree git -y
Kjør brukeradd -m -D /Home /Shovon -S /Bin /Bash -G Sudo Shovon
Run Echo 'Shovon: Secret' | Chpasswd
Kjør service SSH Start
Utsett 22
Cmd ["/usr/sbin/sshd", "-d"]

Når du er ferdig, kan du lagre Dockerfile.

Her forteller linje 1 til Docker å bruke det offisielle Docker Hub -bildet Ubuntu: 20.04, som base for det tilpassede Docker -bildet.

Linje 3 Oppdaterer Apt Package Repository Cache på toppen av basisbildet.

Linje 4-6 Konfigurerer lokalinnstillingene for bildet. Jeg setter det til en_us.UTF-8 I dette tilfellet, men du kan endre det til et annet sted hvis du vil.

Linje 8-10 konfigurerer tidssonen for bildet. Jeg setter det til Asia/Dhaka. Bytt den ut med ønsket tidssone.

Linje 12 Installerer OpenSSH-serveren, Git, Sudo, Bash-fullføringen og Tree Command-Line-verktøyet på toppen av basisbildet.

Linje 14-15 oppretter en ny bruker Shovon, settene /Hjem/Shovon som hjemmekatalog for brukeren, angir /bin/bash Som påloggingsskall for brukeren, legger brukeren til sudo gruppe, og angir påloggingspassordet hemmelig for brukeren.

Du vil opprette en bruker med et annet navn, angi en annen hjemmekatalog og angi et annet passord. Så endre påloggingsbrukernavnet, passordet og hjemmekatalogstien etter behov.

Linje 17-19 starter SSH-tjenesten og utsetter SSH-porten 22 som standard.

SSH inn i synologien NAS

Når du har aktivert SSH -tjenesten, kan du SSH i Synology NAS fra datamaskinen din.

For å koble til synologien NAS via SSH, åpne en terminal på datamaskinen din og kjør følgende kommando:

$ ssh [email protected]

MERK: Her, Shovon er påloggingsbrukernavnet og 192.168.0.110 er IP -adressen til synologien min NAS. Det vil være annerledes for deg. Så sørg for å erstatte den med din fra nå av.

Når du får tilgang til synologien NAS via SSH for første gang, vil du se følgende ledetekst.

Skriv inn ja og trykk å fortsette.

Skriv inn påloggingspassordet ditt og trykk.

Du bør være logget på synologien din NAS via SSH, som du kan se på skjermbildet nedenfor.

Opprette et tilpasset Docker -bilde for utvikling

Vi har laget en Dockerfile i ubuntu-dev/ mappe av Docker delt mappe. Som du kan se, Docker Delt mappe er opprettet i Volum 4 av synologien din NAS.

Så naviger til /Volum4 mappe fra kommandolinjen til synologien din NAS.

$ cd /volum4

De Docker Delt mappe skal være i /Volum4 som du kan se på skjermbildet nedenfor.

$ ls

Naviger til Docker/ mappe.

$ CD Docker/

Du bør finne ubuntu-dev/ Mappe her du har opprettet tidligere, som du kan se på skjermdumpen nedenfor.

$ ls

Naviger til ubuntu-dev/ mappe.

$ cd ubuntu-dev/

Du bør finne Dockerfile Du har opprettet i den tidligere delen av denne artikkelen her, som du kan se på skjermdumpen nedenfor.

For å lage et tilpasset Docker -bilde Synology-dev/Ubuntu: 20.04 fra Dockerfile, Kjør følgende kommando:

$ sudo docker build -t Synology -dev/Ubuntu: 20.04 .

Skriv inn påloggingspassordet til synologien NAS og trykk .

Et tilpasset Docker -bilde opprettes. Det kan ta en stund å fullføre.

Et tilpasset Docker -bilde opprettes.

Et tilpasset Docker -bilde opprettes.

Et tilpasset Docker -bilde opprettes.

På dette tidspunktet et tilpasset Docker -bilde Synology-dev/Ubuntu: 20.04 bør opprettes.

En gang det tilpassede Docker -bildet Synology-dev/Ubuntu: 20.04 er opprettet, åpne Docker App fra nettet GUI for synologien din NAS.

De Docker App skal åpnes.

I Bilde delen av Docker App, bør du finne det tilpassede docker -bildet Synology-dev/Ubuntu: 20.04, som du nettopp har laget, som du kan se på skjermbildet nedenfor.

Opprette en Ubuntu 20.04 LTS Development Container

For å lage en ny beholder ved hjelp av det tilpassede Docker -bildet Synology-dev/Ubuntu: 20.04, Velg den og klikk på Lansering fra Bilde delen av Docker app, som merket i skjermbildet nedenfor.

Skriv inn en Containernavn.

Jeg vil kalle det S01. Du kan kalle det hva du vil.

Klikk på Avanserte innstillinger, Som merket på skjermbildet nedenfor.

Undersøk Aktiver auto-restart avkrysningsrute fra Avanserte innstillinger Tab of the Avanserte innstillinger vindu.

Naviger til Volum Tab of the Avanserte innstillinger vindu.

Å legge til Prosjekter Delt mappe (som du har opprettet i den tidligere delen av denne artikkelen for lagring av alle prosjektfilene) til beholderen, klikk på Legg til mappe, Som merket på skjermbildet nedenfor.

Velg Prosjekter delt mappe fra listen og klikk på Plukke ut.

En ny oppføring bør legges til, som du kan se på skjermdumpen nedenfor.

Skriv inn banen der du vil montere Prosjekter Delt mappe på beholderen.

Jeg vil montere Prosjekter Delt mappe i banen /Hjem/Shovon/prosjekter.

Naviger til Portinnstillinger Tab fra Avanserte innstillinger vindu.

Skriv inn Lokal havn Antall 2222 for Containerport Antall 22, Som merket på skjermbildet nedenfor.

Når du er ferdig, klikker du på Søke om.

Klikk på NESTE.

Klikk på Søke om.

En ny beholder S01 bør opprettes, som du kan se i Container delen av Docker app.

Festing av prosjekter delte mappen tillatelser for containeren

Nå må du SSH inn i Docker -beholderen S01 og fikse tillatelser for din Prosjekter delt mappe.

Du kan ssh inn i docker -beholderen S01 Fra datamaskinen din med følgende kommando:

$ ssh -p 2222 [email protected]

MERK: Her, Shovon er påloggingsbrukernavnet til Docker -beholderen. 192.168.0.110 er IP -adressen til synologien din NAS og 2222 er det videresendte portnummeret til Docker -beholderen. Det vil være annerledes for deg. Så sørg for å erstatte den med din fra nå av.

Når du kobler til Docker -beholderen S01 For første gang vil du se følgende ledetekst.

Skriv inn ja og trykk .

Skriv inn påloggingspassordet (hemmelig, I mitt tilfelle) av Docker -beholderen din S01 og trykk .

Du skal være logget inn i Docker -beholderen S01 via SSH, som du kan se på skjermbildet nedenfor.

Å endre eieren og gruppen av alle filene og mappene til din Prosjekter Delt mappe til påloggingsbrukeren og gruppen av Docker -beholderen S01, Kjør følgende kommando:

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

MERK: Jeg har montert Prosjekter delt mappe i ~/prosjekter mappe av dockerbeholderen S01. Du har kanskje montert den et annet sted. Så sørg for å erstatte katalogstien med din fra nå av.

Eieren og gruppen av alle filene og katalogene til Prosjekter Delt mappe skal endres til påloggingsbrukeren og gruppen av Docker -beholderen S01.

Sett nå riktige tillatelser for Prosjekter delt mappe montert i ~/prosjekter mappe av dockerbeholderen S01 med følgende kommando:

$ sudo chown -rfv 775 ~/prosjekter

Riktig fil og katalogtillatelser for Prosjekter Delt mappe skal settes.

Oppsett ekstern utvikling på beholderen med visuell studiokode

Visual Studio Code Nativt støtter ekstern utvikling. Du kan ha visuell studiokode installert på en datamaskin (Windows/Linux/MacOS) og koble til Docker Container S01 Kjører på synologien din NAS via SSH og eksternt gjør utviklingsprosjektene dine der. Datamaskinen din og synologien NAS må være i samme nettverk for at dette skal fungere.

La oss se hvordan du gjør ekstern utvikling på Docker -beholderen S01 Kjører på Synology NAS ved hjelp av Visual Studio Code.

Start Visual Studio Code Editor på datamaskinen din. Jeg bruker Visual Studio Code på Windows 10 -datamaskinen min.

Nå må du installere Ekstern utvikling forlengelse på Visual Studio Code for å gjøre ekstern utvikling.

For å installere Ekstern utvikling utvidelse, klikk på Utvidelser Ikon, søk etter ekstern utvikling utvidelse, klikk på Ekstern utvikling, og klikk på Installere, Som merket på skjermbildet nedenfor.

De Ekstern utvikling utvidelse bør installeres.

Først når Ekstern utvikling Utvidelse er installert, du bør se følgende ikon () nederst til venstre i Visual Studio-koden, som merket i skjermdumpen nedenfor.

For å legge til Docker -beholderen S01 Kjør på synologien din NAS til Visual Studio Code for Remote Development, klikk på ekstern utviklingsikon .

Klikk på Remote-SSH: Koble gjeldende vindu til vert .. , Som merket på skjermbildet nedenfor.

Skriv inn [email protected]: 2222 og trykk .

Her, Shovon er påloggingsbrukernavnet til Docker -beholderen S01, 192.168.0.110 er IP -adressen til synologien min NAS, og 2222 er det videresendte portnummeret til Docker -beholderen S01. Brukernavnet, IP -adressen og portnummeret vil være annerledes for deg. Så sørg for å erstatte dem med dine.

Klikk på Linux.

Klikk på Fortsette.

Skriv inn påloggingspassordet til Docker -beholderen S01 og trykk .

Visual Studio Code vil laste ned alle nødvendige filer på Docker -beholderen S01 og forbered containeren for fjernutvikling. Det kan ta en stund å fullføre.

På dette tidspunktet skal alle nødvendige filer lastes ned i Docker -beholderen S01, Og den visuelle studiokoden skal være klar for fjernutvikling.

Å åpne en prosjektmappe fra Prosjekter delt mappe, klikk på Fil > Åpen mappe .. , Som merket på skjermbildet nedenfor.

Som du kan se, alle tilgjengelige mapper i Docker -beholderen S01 vises. Klikk på prosjekter mappe.

Jeg har kopiert et enkelt C ++ -prosjekt Exploring-CPP11Prosjekter Delt mappe av synologien min NAS. Så mappen dukker opp i prosjekter/ mappe av dockerbeholderen S01, Som du kan se på skjermbildet nedenfor. Jeg skal bruke den til å demonstrere hvordan du gjør ekstern utvikling på en Docker -beholder som kjører på synologien din NAS.

Det kan være lurt å åpne en annen prosjektmappe. Du kan også opprette en tom prosjektmappe og åpne den med Visual Studio Code og følge med.

For å åpne en prosjektmappe med Visual Studio Code, klikker du på den. Som jeg vil åpne Exploring-CPP11/ Prosjektmappe, jeg vil klikke på den.

Når du er i prosjektmappen, som du vil åpne med Visual Studio Code, klikker du på Ok.

Du kan bli bedt om å skrive inn påloggingspassordet til Docker -beholderen S01. Skriv inn påloggingspassordet til Docker -beholderen S01 og trykk .

Prosjektmappen skal åpnes med Visual Studio Code, som du kan se på skjermdumpen nedenfor.

I prosjektmappen min har jeg en inkluderer/ mappe, src/ mappe, og en CMakelists.tekst fil.

I inkluderer/ mappe, jeg har en C ++ overskriftsfil Skriver.h og i src/ mappe; Jeg har 2 C ++ kildefiler hoved-.CPP og Skriver.CPP, Som du kan se på skjermbildet nedenfor.

Innholdet i C ++ kildefilen SRC/Main.CPP er gitt på skjermbildet nedenfor.

Innholdet i C ++ kildefilen SRC/skriver.CPP er gitt på skjermbildet nedenfor.

Innholdet i C ++ overskriftsfilen Inkluderer/skriver.h er gitt på skjermbildet nedenfor.

Innholdet i CMake -konfigurasjonsfilen CMakelists.tekst er gitt på skjermbildet nedenfor.

Når du har opprettet en CMakelists.tekst Fil og skriv inn følgende innhold på filen, Visual Studio Code skal oppdage at du bruker CMake, og den vil be deg om å installere de nødvendige CMake -utvidelsene. Klikk på Installere.

De nødvendige CMake -utvidelsene skal installeres.

Når de nødvendige CMake-utvidelsene er installert, skal automatisk fullføring og syntaksutheving fungere for CMake-konfigurasjonsfiler, som du kan se i skjermbildet nedenfor.

Når du har opprettet alle nødvendige filer og mapper for prosjektet, klikker du på Terminal > Ny terminal Å åpne et nytt terminalvindu.

Et nytt terminalvindu bør åpnes, som du kan se på skjermdumpen nedenfor.

For å kompilere C ++ -programmet, må du installere en C ++ -kompilator og CMake Build Tools på Docker -beholderen S01.

For å gjøre det, kjør følgende kommando:

$ sudo apt install build -essensial cmake -y

C ++ kompilatoren og CMake Build -verktøyene lastes ned. Det kan ta noen sekunder å fullføre.

C ++ -kompilatoren og CMake Build -verktøyene blir installert.

På dette tidspunktet skal C ++ kompilatoren og CMake Build -verktøyene installeres.

Nå, lage en bygge/ Mappe med følgende kommando:

$ mkdir -pv build

Naviger til bygge/ Mappe med følgende kommando:

$ cd build/

Generer CMake Build -konfigurasjonsfiler for C ++ -prosjektet med følgende kommando:

$ cmake ..

CMake Build -konfigurasjonsfiler bør genereres.

Som du ser genereres Makefile og andre CMake -konfigurasjonsfiler i bygge/ mappe.

$ ls -lh

For å kompilere C ++ -prosjektet ved hjelp av CMake, kjør følgende kommando:

$ Cmake - -Build .

C ++ -prosjektet skal sammenstilles, som du kan se på skjermdumpen nedenfor.

Når C ++ -prosjektet er samlet, en ny kjørbar fil app skal opprettes i bygge/ som du kan se på skjermbildet nedenfor.

Du kan kjøre den kompilerte kjørbare filen app, følgende:

$ ./app

Som du kan se, skrives riktig utgang på konsollen.

Slik bruker du Docker for å lage et Linux -utviklingsmiljø på Synology NAS og gjøre ekstern utvikling på Docker -containere ved hjelp av Visual Studio Code.

Konklusjon

I denne artikkelen har jeg vist deg hvordan du bruker Docker til å lage et Linux -utviklermiljø på Synology NAS og gjøre ekstern utvikling på Docker -containere ved hjelp av Visual Studio Code. Annet enn det, hvordan du kan bruke den offisielle Ubuntu 20.04 LTS Docker Hub Image for å lage en tilpasset Ubuntu 20.04 LTS Docker -bilde for å sette opp et Docker -utviklingsmiljø blir også undervist her. Du kan gjøre det samme med andre operativsystembilder (i.e., Centos, Debian) også.