Como usar o Docker para criar um ambiente de desenvolvedor Linux no Sinology NAS?

Como usar o Docker para criar um ambiente de desenvolvedor Linux no Sinology NAS?

Você pode usar o aplicativo oficial do Synology Virtual Machine Manager para criar uma máquina virtual, instalar qualquer distribuição Linux e trabalhar em seus projetos de desenvolvimento na máquina virtual. Você pode fazer o mesmo em um contêiner do Docker usando o aplicativo oficial do Synology Docker. Embora o desenvolvimento de uma máquina virtual seja muito mais flexível do que o desenvolvimento de um contêiner (como uma máquina virtual é como um computador de pleno direito), uma máquina virtual requer muita memória e recursos do sistema do que um contêiner do docker.

Se a sua sinologia NAS não tiver memória suficiente ou você não deseja atualizar a memória do seu NAS Sinology, então você pode usar o Docker para criar um ambiente de desenvolvimento Linux em sua sinologia NAS.

Neste artigo, vou mostrar como criar um Ubuntu 20 personalizado.A imagem. Então vamos começar.

Coisas que você precisará

Para seguir este artigo, você precisa ter:

  • Sinologia NAS com pelo menos 4 GB ou mais de memória instalada
  • Docker aplicativo instalado em sua sinologia NAS
  • Computador ou laptop para se conectar à GUI da web da Sinology NAS
  • Conexão com a Internet em sua sinologia NAS e computador/laptop

Se você precisar de ajuda para instalar o Docker aplicativo em sua sinologia NAS, então você pode ler o artigo Recipientes de Docker em execução no Synology NAS no Linuxhint.com.

Criando uma pasta compartilhada de projetos

Eu gostaria de manter todos os meus projetos em uma pasta separada para manter as coisas organizadas. Então, eu vou criar uma nova pasta compartilhada Projetos Na minha sinologia NAS. Se você ainda não tem uma pasta separada para manter seus projetos, você pode fazer o mesmo.

Para criar uma nova pasta compartilhada Projetos, Clique em Pasta compartilhada de Painel de controle aplicativo, conforme marcado na captura de tela abaixo.

Clique em Criar > Criar, conforme marcado na captura de tela abaixo.

Digitar Projetos como o compartilhamento Nome e selecione um volume de armazenamento onde você deseja criar a pasta compartilhada a partir do Localização menu suspenso e clique em Próximo, conforme marcado na captura de tela abaixo.

Clique em Próximo.

Clique em Próximo.

Clique em Aplicar.

Definir Ler escrever Permissões para os usuários que você deseja permitir o acesso ao compartilhamento e clique em OK.

Uma nova pasta compartilhada Projetos deve ser criado, como você pode ver na captura de tela abaixo.

Ativar acesso SSH à sinologia NAS

Para configurar um ambiente de desenvolvimento em um contêiner do Docker, você terá que criar uma imagem personalizada do Docker. No momento da redação deste artigo, você não pode criar uma imagem personalizada do Docker a partir do oficial Docker aplicativo da sua sinologia Nas usando um Dockerfile. Mas você pode criar uma imagem personalizada do docker usando um Dockerfile Da linha de comando da sua sinologia NAS.

Para acessar a linha de comando da sua sinologia nasce Painel de controle aplicativo.

Para fazer isso, abra o Painel de controle aplicativo e navegue para o Terminal & SNMP seção, conforme marcado na captura de tela abaixo.

Verificar Ativar serviço SSH Caixa de seleção e clique em Aplicar, conforme marcado na captura de tela abaixo.

O serviço SSH deve ser ativado em sua sinologia NAS.

Criando uma pasta para a imagem do contêiner

Vamos criar uma pasta dedicada no Docker pasta compartilhada para manter o Dockerfile que será usado para criar uma imagem de contêiner de docker personalizada.

Para criar uma nova pasta, abra o Estação de arquivo aplicativo, selecione o Docker pasta compartilhada e clique em Criar, conforme marcado na captura de tela abaixo.

Clique em Criar pasta.

Digitar Ubuntu-dev como o nome da pasta e clique em OK.

Uma nova pasta Ubuntu-dev deve ser criado no Docker Pasta compartilhada, como você pode ver na captura de tela abaixo.

Criando um Dockerfile para a imagem do contêiner

Crie um novo arquivo Dockerfile no ubuntu-dev/ pasta e digite as seguintes linhas no Dockerfile:

De Ubuntu: 20.04
Execute atualização APT
Execute o APT Instale Locales Locales -All -y
Execute loce-gen en_us.UTF-8
Executar Lang de localização de atualização = en_Us.UTF-8
Env Tz = Ásia/Dhaka
Execute LN -SNF/usr/share/zoneinfo/$ tz/etc/localTime && eco $ tz>/etc/timegone
Execute a instalação adequada tzdata -y
Run Apt Install OpenSsh-Server Sudo-Concluir Árvore Git -y
Execute useradd -m -d /home /shovon -s /bin /bash -g sudo shovon
Run Echo 'Shovon: Secret' | Chpasswd
Execute o serviço SSH STS
Expor 22
Cmd ["/usr/sbin/sshd", "-d"]

Depois de terminar, salve o Dockerfile.

Aqui, a linha 1 diz ao Docker para usar a imagem oficial do Docker Hub Ubuntu: 20.04, Como base para a imagem personalizada do Docker.

A linha 3 atualiza o cache do repositório de pacotes apt sobre a imagem base.

A linha 4-6 configura as configurações de localidade para a imagem. Estou definindo para en_us.UTF-8 Nesse caso, mas você pode alterá -lo para um local diferente se quiser.

A linha 8-10 configura o fuso horário para a imagem. Estou definindo para Ásia/Dhaka. Substitua -o pelo fuso horário desejado.

A linha 12 instala o servidor OpenSsh, Git, Sudo, Bash Conclusão e o utilitário de linha de comando da árvore no topo da imagem base.

A linha 14-15 cria um novo usuário Shovon, conjuntos /Home/Shovon Como diretório doméstico para o usuário, define /BIN/BASH Como shell de login para o usuário, adiciona o usuário ao sudo grupo e define a senha de login segredo para o usuário.

Você deseja criar um usuário com um nome diferente, definir um diretório doméstico diferente e definir uma senha diferente. Portanto, altere o nome de usuário de login, senha e caminho do diretório doméstico, conforme necessário.

A linha 17-19 inicia o serviço SSH e expõe a porta SSH 22 por padrão.

Ssh na sinologia NAS

Depois de ativar o serviço SSH, você pode ssh no NAS da sinologia do seu computador.

Para conectar -se ao NAS da Sinology via SSH, abra um terminal no seu computador e execute o seguinte comando:

$ ssh [email protected]

OBSERVAÇÃO: Aqui, Shovon é o nome de usuário de login e 192.168.0.110 é o endereço IP da minha sinologia NAS. Vai ser diferente para você. Então, certifique -se de substituí -lo por seu a partir de agora.

Enquanto você está acessando a Sinology NAS via SSH pela primeira vez, você verá o seguinte prompt.

Digitar sim e pressione continuar.

Digite sua senha de login e pressione.

Você deve estar conectado ao seu NAS de sinologia via SSH, como pode ver na captura de tela abaixo.

Criando uma imagem personalizada para o desenvolvimento

Nós criamos um Dockerfile no ubuntu-dev/ pasta do Docker pasta compartilhada. Como você pode ver, o Docker Pasta compartilhada é criada em Volume 4 da sua sinologia NAS.

Então, navegue para o /volume4 Pasta da linha de comando da sua sinologia NAS.

$ cd /volume4

O Docker Pasta compartilhada deve estar no /volume4 Pasta, como você pode ver na captura de tela abaixo.

$ ls

Navegue até o Docker/ pasta.

$ CD Docker/

Você deve encontrar o ubuntu-dev/ Pasta aqui que você criou anteriormente, como pode ver na captura de tela abaixo.

$ ls

Navegue até o ubuntu-dev/ pasta.

$ cd ubuntu-dev/

Você deve encontrar o Dockerfile Você criou na seção anterior deste artigo aqui, como pode ver na captura de tela abaixo.

Para criar uma imagem personalizada do Docker Sinologia-Dev/Ubuntu: 20.04 de Dockerfile, Execute o seguinte comando:

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

Digite a senha de login da sua sinologia NAS e pressione .

Uma imagem personalizada do docker está sendo criada. Pode demorar um pouco para completar.

Uma imagem personalizada do docker está sendo criada.

Uma imagem personalizada do docker está sendo criada.

Uma imagem personalizada do docker está sendo criada.

Neste ponto, uma imagem personalizada do Docker Sinologia-Dev/Ubuntu: 20.04 deve ser criado.

Uma vez que a imagem personalizada do Docker Sinologia-Dev/Ubuntu: 20.04 é criado, abra o Docker aplicativo da GUI da web da sua sinologia NAS.

O Docker o aplicativo deve ser aberto.

No Imagem seção do Docker App, você deve encontrar a imagem personalizada do Docker Sinologia-Dev/Ubuntu: 20.04, que você acabou de criar, como pode ver na captura de tela abaixo.

Criando um Ubuntu 20.04 LTS Development Container

Para criar um novo contêiner usando a imagem personalizada do Docker Sinologia-Dev/Ubuntu: 20.04, Selecione e clique em Lançar de Imagem seção do Docker aplicativo, conforme marcado na captura de tela abaixo.

Digite a Nome do contêiner.

Eu vou chamá -lo S01. Você pode chamá-lo do que quiser.

Clique em Configurações avançadas, conforme marcado na captura de tela abaixo.

Verifica a Habilite Restart automático Caixa de seleção do Configurações avançadas guia do Configurações avançadas janela.

Navegue até o Volume guia do Configurações avançadas janela.

Para adicionar o Projetos Pasta compartilhada (que você criou na seção anterior deste artigo para armazenar todos os arquivos do projeto) no contêiner, clique em Adicionar pasta, conforme marcado na captura de tela abaixo.

Selecione os Projetos pasta compartilhada da lista e clique em Selecione.

Uma nova entrada deve ser adicionada, como você pode ver na captura de tela abaixo.

Digite o caminho onde você deseja montar o Projetos pasta compartilhada em seu contêiner.

Eu vou montar o Projetos Pasta compartilhada no caminho /Home/Shovon/Projetos.

Navegue até o Configurações da porta guia do Configurações avançadas janela.

Digite o Porta local número 2222 para o Porta de contêiner número 22, conforme marcado na captura de tela abaixo.

Depois de terminar, clique em Aplicar.

Clique em Próximo.

Clique em Aplicar.

Um novo contêiner S01 deve ser criado, como você pode ver no Recipiente seção do Docker aplicativo.

Corrigindo Projetos Permissões de pastas compartilhadas para o contêiner

Agora, você tem que ssh no recipiente do docker S01 e consertar permissões para o seu Projetos pasta compartilhada.

Você pode ssh no recipiente do docker S01 Do seu computador com o seguinte comando:

$ ssh -p 2222 [email protected]

OBSERVAÇÃO: Aqui, Shovon é o nome de usuário de login do recipiente do docker. 192.168.0.110 é o endereço IP da sua sinologia NAS e 2222 é o número da porta encaminhada do recipiente do docker. Vai ser diferente para você. Então, certifique -se de substituí -lo por seu a partir de agora.

Enquanto você está se conectando ao recipiente do Docker S01 Pela primeira vez, você verá o seguinte prompt.

Digitar sim e pressione .

Digite a senha de login (segredo, no meu caso) do seu contêiner do Docker S01 e pressione .

Você deve estar conectado ao recipiente do docker S01 via ssh, como você pode ver na captura de tela abaixo.

Para alterar o proprietário e o grupo de todos os arquivos e pastas de seu Projetos Pasta compartilhada para o usuário e o grupo de login do contêiner do docker S01, Execute o seguinte comando:

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

OBSERVAÇÃO: Eu montei o Projetos pasta compartilhada no ~/projetos pasta do recipiente do docker S01. Você pode ter montado em outro lugar. Então, certifique -se de substituir o caminho do diretório por seu a partir de agora.

O proprietário e o grupo de todos os arquivos e diretórios do Projetos A pasta compartilhada deve ser alterada para o usuário e o grupo de login do contêiner do docker S01.

Agora, defina as permissões corretas para o Projetos pasta compartilhada montada no ~/projetos pasta do recipiente do docker S01 com o seguinte comando:

$ sudo chown -rfv 775 ~/projetos

O arquivo correto e as permissões de diretório para o Projetos Pasta compartilhada deve ser definida.

Configurar o desenvolvimento remoto no contêiner com código do Visual Studio

Código do Visual Studio nativamente suporta desenvolvimento remoto. Você pode ter o código do Visual Studio instalado em um computador (Windows/Linux/MacOS) e conectar -se ao contêiner do docker S01 executando sua sinologia NAS via ssh e remotamente seus projetos de desenvolvimento lá. Seu computador e o NAS da sinologia devem estar na mesma rede para que isso funcione.

Vamos ver como fazer desenvolvimento remoto no recipiente do Docker S01 executando no NAS Sinology usando o código do Visual Studio.

Inicie o editor de código do Visual Studio em seu computador. Estou usando o código do Visual Studio no meu computador Windows 10.

Agora, você precisa instalar o Desenvolvimento remoto extensão em Código do Visual Studio para fazer desenvolvimento remoto.

Para instalar o Desenvolvimento remoto extensão, clique no Extensões ícone, procure o desenvolvimento remoto Extensão, clique em Desenvolvimento remoto, e clique em Instalar, conforme marcado na captura de tela abaixo.

O Desenvolvimento remoto A extensão deve ser instalada.

Uma vez o Desenvolvimento remoto Extensão está instalada, você deve ver o seguinte ícone () no canto inferior esquerdo do código do Visual Studio, conforme marcado na captura de tela abaixo.

Para adicionar o contêiner do docker S01 Executando sua sinologia NAS para o Código do Visual Studio para desenvolvimento remoto, clique no ícone de desenvolvimento remoto .

Clique em Remote-SSH: conecte a janela atual ao host… , conforme marcado na captura de tela abaixo.

Digitar [email protected]: 2222 e pressione .

Aqui, Shovon é o nome de usuário de login do recipiente do docker S01, 192.168.0.110 é o endereço IP da minha sinologia Nas e 2222 é o número da porta encaminhada do recipiente do docker S01. O nome de usuário, o endereço IP e o número da porta serão diferentes para você. Então, certifique -se de substituí -los pelo seu.

Clique em Linux.

Clique em Continuar.

Digite a senha de login do contêiner do Docker S01 e pressione .

O código do Visual Studio baixará todos os arquivos necessários no contêiner do docker S01 e prepare o recipiente para desenvolvimento remoto. Pode demorar um pouco para completar.

Neste ponto, todos os arquivos necessários devem ser baixados no contêiner do Docker S01, e o código do Visual Studio deve estar pronto para o desenvolvimento remoto.

Para abrir uma pasta de projeto do Projetos Pasta compartilhada, clique em Arquivo > Pasta aberta… , conforme marcado na captura de tela abaixo.

Como você pode ver, todas as pastas disponíveis do contêiner do Docker S01 Estão exibidas. Clique no projetos pasta.

Eu copiei um projeto C ++ simples Exploring-CPP11 no Projetos Pasta compartilhada da minha sinologia NAS. Então, a pasta aparece no projetos/ pasta do recipiente do docker S01, Como você pode ver na captura de tela abaixo. Vou usá -lo para demonstrar como fazer desenvolvimento remoto em um contêiner do Docker em execução em sua sinologia NAS.

Você pode querer abrir uma pasta de projeto diferente. Você também pode criar uma pasta de projeto vazia e abri -la com o código do Visual Studio e acompanhar.

Para abrir uma pasta de projeto com código do Visual Studio, clique nele. Como eu quero abrir o Exploring-CPP11/ Pasta do projeto, vou clicar nela.

Quando estiver na pasta do projeto, que deseja abrir com o código do Visual Studio, clique em OK.

Você pode ser solicitado a digitar a senha de login do seu contêiner do Docker S01. Digite a senha de login do seu contêiner do Docker S01 e pressione .

A pasta do projeto deve ser aberta com o código do Visual Studio, como você pode ver na captura de tela abaixo.

Na minha pasta de projeto, eu tenho um inclui/ pasta, src/ pasta e um Cmakelists.TXT arquivo.

No inclui/ Pasta, eu tenho um arquivo de cabeçalho C ++ Impressora.h E no src/ pasta; Eu tenho 2 arquivos de origem C ++ principal.cpp e Impressora.cpp, Como você pode ver na captura de tela abaixo.

O conteúdo do arquivo de origem C ++ src/main.cpp é dado na captura de tela abaixo.

O conteúdo do arquivo de origem C ++ src/impressora.cpp é dado na captura de tela abaixo.

O conteúdo do arquivo de cabeçalho C ++ Inclui/impressora.h é dado na captura de tela abaixo.

O conteúdo do arquivo de configuração do CMake Cmakelists.TXT é dado na captura de tela abaixo.

Depois de criar um Cmakelists.TXT Arquivo e digite os seguintes conteúdos no arquivo, o código do Visual Studio deve detectar que você está usando o cmake e solicitará que você instale as extensões cmake necessárias. Clique em Instalar.

As extensões cmake necessárias devem ser instaladas.

Depois que as extensões CMake necessárias forem instaladas, a conclusão automática e o destaque da sintaxe devem funcionar para arquivos de configuração do CMake, como você pode ver na captura de tela abaixo.

Depois de criar todos os arquivos e pastas necessários para o projeto, clique em terminal > Novo terminal Para abrir uma nova janela do terminal.

Uma nova janela do terminal deve ser aberta, como você pode ver na captura de tela abaixo.

Para compilar o programa C ++, você precisa instalar um compilador C ++ e as ferramentas de compilação CMake no seu contêiner Docker S01.

Para fazer isso, execute o seguinte comando:

$ sudo apt install build -essencial cmake -y

O compilador C ++ e as ferramentas de construção cmake estão sendo baixadas. Pode levar alguns segundos para concluir.

O compilador C ++ e as ferramentas de construção cmake estão sendo instaladas.

Neste ponto, o compilador C ++ e as ferramentas de construção de cmake devem ser instaladas.

Agora, crie um construir/ Pasta com o seguinte comando:

$ mkdir -pv build

Navegue até o construir/ Pasta com o seguinte comando:

$ CD Build/

Gere arquivos de configuração de criação de cmake para o projeto C ++ com o seguinte comando:

$ cmake…

Cmake Build Arquivos devem ser gerados.

Como você pode ver, makefile e outros arquivos de configuração cmake são gerados no construir/ pasta.

$ ls -lh

Para compilar o projeto C ++ usando o cmake, execute o seguinte comando:

$ cmake -build .

O projeto C ++ deve ser compilado, como você pode ver na captura de tela abaixo.

Depois que o projeto C ++ é compilado, um novo arquivo executável aplicativo deve ser criado no construir/ Pasta, como você pode ver na captura de tela abaixo.

Você pode executar o arquivo executável compilado aplicativo, do seguinte modo:

$ ./aplicativo

Como você pode ver, a saída correta está sendo impressa no console.

É assim que você usa o Docker para criar um ambiente de desenvolvimento Linux em sua sinologia NAS e fazer desenvolvimento remoto em contêineres do docker usando o código do Visual Studio.

Conclusão

Neste artigo, mostrei como usar o Docker para criar um ambiente de desenvolvedor Linux no seu NAS Sinology e fazer desenvolvimento remoto em contêineres do Docker usando o código do Visual Studio. Fora isso, como você pode usar o Ubuntu 20 oficial.04 LTS Docker Hub Image para criar um Ubuntu personalizado 20.04 LTS Docker Image para configurar um ambiente de desenvolvimento do Docker também é ensinado aqui. Você pode fazer o mesmo com outras imagens do sistema operacional (i.e., Centos, Debian) também.