Github更新GCE上docker容器的操作
我目前正在尝试创建一个Github操作,自动更新我的一个GCE实例上正在运行的容器。我正在使用: 到目前为止,我所做的更新应用程序的工作是手动从我的github repo中提取更改并运行Github更新GCE上docker容器的操作,docker,google-cloud-platform,docker-compose,google-compute-engine,github-actions,Docker,Google Cloud Platform,Docker Compose,Google Compute Engine,Github Actions,我目前正在尝试创建一个Github操作,自动更新我的一个GCE实例上正在运行的容器。我正在使用: 到目前为止,我所做的更新应用程序的工作是手动从我的github repo中提取更改并运行docker compose-up--build。我使用docker compose,因为我的应用程序也使用Postgres DB 这是我的Dockerfile: FROM node:14 WORKDIR /usr/src/app COPY . . RUN npm install CMD [ "npm&
docker compose-up--build
。我使用docker compose,因为我的应用程序也使用Postgres DB
这是我的Dockerfile
:
FROM node:14
WORKDIR /usr/src/app
COPY . .
RUN npm install
CMD [ "npm", "run", "prod" ]
和mydocker compose.yaml
(带有虚拟值):
应用程序本身工作正常。docker映像在主服务器上提交后创建并存储在GCP容器注册表中,但如何将此容器与Postgres容器一起运行?您有两种解决方案
- 要么使用Docker Compose
- 或者将GCE与容器映像一起使用
因为使用docker compose不是GCE的固有功能(以及维护、修补等功能),所以我不推荐这样做 就性能和可伸缩性而言,最好将其用于postgres数据库,并且只在GCE上部署节点容器。这样,您就可以使用GCE with container image功能开箱即用
但这个解决方案还不够完美。您只有一个VM,您必须监视、更新、修补,。。。最终的解决方案是使用全新的节点容器来承载您的节点容器,或者如果您的节点容器只响应HTTP请求。您所说的
是什么意思?如何将此容器与Postgres容器一起运行?如果我理解正确,您似乎没有为它们定义网络。@Saeed我正在使用上面的docker compose文件启动我的应用程序所需的两个容器。我不明白如何使用Github操作和gcloud
实现同样的效果。Github操作模板还没有使用docker compose文件,这意味着postgres容器永远不会启动/更新。
FROM node:14
WORKDIR /usr/src/app
COPY . .
RUN npm install
CMD [ "npm", "run", "prod" ]
version: "3"
services:
app:
container_name: cname
restart: always
build: .
depends_on:
- postgres
postgres:
image: postgres
environment:
POSTGRES_USER: user
POSTGRES_PASSWORD: pw
POSTGRES_DB: db
ports:
- '5432:5432'
volumes:
- db-volume:/var/lib/postgresql/data
volumes:
db-volume: