容器的作用是什么?
由 Mux 主办的 DEV 全球展示挑战赛:展示你的项目!
Esse artigo foi escrito com base no artigo为什么人们在容器内开发?Rizèl Scarlett 的Escrito pela minha colega de trabalho 。 Se você consome conteúdo em inglês, super recomendo que siga ela!
2013 年 3 月,Solomon Hykes 和 Seus 共同发起了革命,并以开源 chamada Docker 的形式开发了软件。 Docker 的使用者们发明了容器、容器和流行元素。
感谢 Docker,您可以通过 GitHub Codespaces 进行工程设计,也可以使用容器来开发新的项目。
我承认,我的容器主题是不同的,例如:
-
容器是如何发展起来的?
-
O que são containers?
Se você tem dúvidas semelhantes, este post é para você, vamos aprender juntes!
Neste 帖子,解释了容器的用途,并在 GitHub Codespaces 上配置了开发容器。
PS 你可以使用 palavra 容器,用英语,方便地使用 palavra 容器,可以在葡萄牙语容器中正常使用 palavra,包括在 ptbr 中使用 Kubernetes 本地化文档,因此没有 twitter或 obrigada弗拉维奥。
容器的释放有何意义?
Levanta a mão aí quem já falou (ou pensou): "Funciona no meu PC" o/
Se você não conhece esse meme, saiba que essa frase não virou um meme a toa.技术专家们,我们的技术专家们在各种环境变量中提供了一定的频率。
在各种环境中进行工作,而不是理想的情况,这是一个问题。环境条件与当地环境、工作人员所在地环境、分期生产不同。
如果环境配置不同(mesmo que com pequenas differenças),则环境中存在操作系统错误,但不存在任何问题。但是,如果您的功能或功能存在缺陷,则无法生产或测试。
E é aqui que entra os 容器!解决开发环境不一致问题。
操作系统容器允许软件程序与环境保持一致。 Agora 是一个专门用于操作、配置和依赖系统的产品环境。为了确保错误和循环,请在所有环境条件下进行修复,并执行“Funciona na minha máquina”。
围绕容器的讨论,大家一起探索容器的代码空间。
GitHub Codespaces 开发软件和开发新项目或代理级别
O GitHub Codespaces 允许在新的容器中存储代码。 Nesse contexto,一个新的环境,但它不是计算机,而是在互联网上。
更快速的入职培训
通常,作为响应程序,配置本地环境并在设备上进行响应。本地环境配置包括必要的依赖安装、短绒、环境变量和其他功能。
正常的烹饪方式取决于环境的配置,取决于文件的质量。 Essa 经验和聊天, porque quando a gente começa um projeto novo a gente quer codar logo! Mas em vez disso, temos que alimentar nosso banco de bados and editar arquivos .zshrc, dentre outras coisas.
Felizmente,使用 GitHub Codespaces 进行自动化集成流程和个性化环境配置。在设备中使用新功能,可以将代码空间和环境本地参数配置为扩展,依赖于环境所需的变量,但不存在任何代码空间。
Code de qualquer lugar
我们不知道 lugar 的情况,geograficamente falando,mas também de qualquer máquina。
Com Codespaces,可以访问互联网、笔记本电脑或平板电脑、笔记本或电脑。
您可以在家里使用笔记本电脑或笔记本电脑,然后可以轻松地在 iPad 上进行工作,并且无需保存任何航空存储库,也可以选择 IDE 和本地环境配置。您可以使用 Codespaces 编辑器在 Visual Studio Code 中进行导航。
A melhor parte é que os Codespaces podem salvarautomaticamente o meu código, mesmo que eu esqueça de envirar minhas alterações para meu repositório (Não que eu já tenha perdido código por esquecer de salvar...)
一致的环境
请注意,容器允许在生产环境中进行生产。通过 GitHub Codespaces 容器,您可以了解本地环境的结果和开发环境的经验。
此外,还可以更改基础设施、基础设施、现场环境以及中间的环境。您可以选择当地的环境,也可以选择餐厅的环境。 GitHub Codespaces 中的容器不能将环境和环境统一为 trabalhar 环境和 quebrado 环境。
需要在 Codespaces 上进行精确配置
您可以通过使用 Codespaces 功能来体验 Codespaces 功能和装备:o arquivo devcontainer.json,o Dockerfileeo arquivo docker-compose.yml。
Cada um desses arquivos 不存在于.devcontainer存储库中。
Devcontainer.json
我们提供了 devcontainer.json 和 GitHub Codespaces 的配置信息,用于配置代码空间。然后,devcontainer配置或继续:
-
扩展
-
环境变量
-
Dockerfile
-
港口
-
Comandos pós-criação
-
E mais…
这对于代码空间来说是非常重要的,因为它是环境的扩展、变量以及特定配置之外的配置,devcontainer.json不会自动安装在特定存储库中的所有代码空间。
例如,作为 essoas tivessem 或 mesmo linter 的 quisesse 和作为 mesmas extensões eu 的 poderia adicionar 或接下来的 arquivo devcontainer.json:
{
"name": "Node.js",
"build": {
"dockerfile": "Dockerfile",
// Update 'VARIANT' to pick a Node version: 18, 16, 14.
// Append -bullseye or -buster to pin to an OS version.
// Use -bullseye variants on local arm64/Apple Silicon.
"args": { "VARIANT": "16-bullseye" }
},
// Configure tool-specific properties.
"customizations": {
// Configure properties specific to VS Code.
"vscode": {
// Add the IDs of extensions you want installed when the container is created.
"extensions": [
"dbaeumer.vscode-eslint", // this is the exentension id for eslint
"esbenp.prettier-vscode", // this is the extension id for prettier
"ms-vsliveshare.vsliveshare", // this is the extension id for live share
]
}
},
// Use 'forwardPorts' to make a list of ports inside the container available locally.
// "forwardPorts": [],
// Use 'postCreateCommand' to run commands after the container is created.
// "postCreateCommand": "yarn install",
// Comment out to connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root.
"remoteUser": "node"
}
您可以通过 devcontainer.json aqui进行渲染。
Dockerfile
您Dockerfile可以通过 GitHub Codespaces 来配置容器。有关 Docker 客户端的命令列表,请参阅 Docker 镜像。 Dockerfiles 用于自动安装和配置容器。例如,安装 Node.js 和容器,然后安装 Dockerfile:
来自节点:16-bullseye
您可以通过 Dockerfiles 来查看。
Docker-compose.yml
您可以docker-compose.yml通过 Codespace 来了解如何执行各种容器。
例如,可以通过银行和 Codespace 执行 Web 服务,并使用容器docker-compose.yml来执行容器。
Aqui está um exemplo de como pode ser um arquivo docker-compose.ymlque está se conectando a um banco de bados:
version: '3.8'
services:
app:
build:
context: ..
dockerfile: .devcontainer/Dockerfile
args:
VARIANT: "3"
NODE_VERSION: "none"
volumes:
- ..:/workspace:cached
command: sleep infinity
network_mode: service:db
db:
image: postgres:latest
restart: unless-stopped
volumes:
- postgres-data:/var/lib/postgresql/data
hostname: postgres
environment:
POSTGRES_DB: my_media
POSTGRES_USER: example
POSTGRES_PASSWORD: pass
POSTGRES_HOST_AUTH_METHOD: trust
ports:
- 5432:5432
volumes:
postgres-data: null
Codespaces 不是 Github 网页编辑器的消息
GitHub Codespaces 不是 GitHub 上的编辑器网络。
O editor web é aquele editor mágico que aparece quando você pressiona “.” em um repositório(Se você nunca fez isso、vai fazer AGORA、eu espero...)。
编辑器允许在存储库中保存编辑器。 O 编辑器是 Web 的编辑器,它可以帮助您更改现有的 Web 全栈应用程序,但它是理想的 Web 全栈开发和执行应用程序。
请使用 GitHub 的网络编辑器,但不能使用终端。
没有任何代码空间允许您在 IDE 中执行,而无需在终端和多个设备上导航。
Chegou a hora da revisão
Nesse artigo aprendemos o que é um 容器 e porque as pessoas usam eles!哎呀呀!
您可以在 GitHub Codespaces 上看到这些内容!
Espero que você,assim como eu,tenha aprendido algo novo hoj!