docker - 从节点 alpine 和 mysql 构建的 Docker-compose 推送图像
问题描述
初步信息
我有一个 docker-compose 文件,它描述了两个服务,一个是从 dockerhub mysql 映像构建的,另一个是从 dockerhub 节点 alpine 映像构建的。docker-compose.yml
如下:
version: "3.8"
services:
client:
image: node:alpine
command: sh -c "cd server && yarn install && cd .. && yarn install && yarn start"
ports:
- "3000:3000"
working_dir: /portal
volumes:
- ./:/portal
environment:
MYSQL_HOST: mysql
MYSQL_USER: root
MYSQL_PASSWORD: password
MYSQL_DB: files
mysql:
image: mysql:5.7
volumes:
- yaml-mysql-data:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: password
MYSQL_DATABASE: files
volumes:
yaml-mysql-data:
目前的理解
我正在尝试使用 kubernetes 部署我的应用程序,但 kubernetes .yml 文件要求我在 dockerhub 上提供容器映像的路径。但是,我在 dockerhub 上没有它们。我不确定如何推送我的图像,因为它们是从我提取的 mysql 和节点图像构建的。
我知道docker-compose push
可以使用,但是它是用于本地构建的图像;而我正在从 dockerhub 中提取图像,并在docker-compose.yml
启动它们时提供具体的说明。
问题
如何推送这些图像,包括应该运行的命令;例如command: sh -c "cd server && yarn install && cd .. && yarn install && yarn start"
?(在docker-compose.yml
上面的第 5 行)
谢谢
解决方案
您放入 docker-compose.yml 的逻辑实际上属于 Dockerfile。因此,为您的 nodejs 应用程序创建一个 Dockerfile(有很多示例)。
然后在您的 docker-compose.yml 中构建您自己的镜像,然后您可以将其推送到注册表。
version: "3.8"
services:
client:
image: your_registry/your_name:some_tag
build: .
ports: ...
environment: ....
推荐阅读
- python - 以下哪一项是余弦衰减(神经网络的学习率重新加权)的正确实现?
- mysql - mySQL Workbench:根据另一个表中的数据查询以更新表
- javascript - setInterval 的问题
- unity3d - 统一启用禁用和共享
- powershell - 如何为具有多个小数的值范围编写 Pester 单元测试
- c# - 如何验证使用 Entity Framework fluent API 创建的模型?
- serial-port - 通过与 Plink 的串行连接在设备上执行命令
- r - 使用 ggplot 创建多条回归线
- javascript - 什么是数组“属性列表”,它们与简单对象有何不同?
- python - Python中单词列表的快速字典查找