是可行的,可以通过以下步骤实现:
1.从GitHub上获取源代码
2.编写Dockerfile,用于构建镜像并运行容器
例如,假设我们有一个使用Node.js编写的简单Web应用程序,存储在GitHub仓库中。我们可以按照以下步骤制作Docker镜像和容器:
1.从GitHub拉取代码
$ git clone https://github.com/username/repo.git
2.编写Dockerfile用于创建镜像
在项目根目录中创建名为Dockerfile的文件,并填充以下内容:
#使用node.js作为基础镜像
FROM node:latest
#将所有文件复制到容器中
COPY . /app
#设置工作目录
WORKDIR /app
#安装依赖项
RUN npm install
#暴露端口
EXPOSE 3000
#设置启动命令
CMD ["npm", "start"]
该Dockerfile指示Docker使用最新版本的Node.js作为基础镜像,并将代码复制到容器的/app目录中。然后安装所有依赖项并将应用程序暴露在端口3000上。最后,在容器启动时运行npm start命令。
3.构建镜像
在项目根目录中运行以下命令来构建镜像:
$ docker build -t myapp .
4.运行容器
使用以下命令在容器中运行图像:
$ docker run -p 3000:3000 myapp
该命令告诉Docker将容器的端口3000映射到主机的端口3000,并在容器中运行镜像。
总之,通过将GitHub源代码制作成Docker镜像并在生产服务器上以容器的形式运行,我们可以实现更可靠和一致的部署,并简化配置,同时保持所有服务在相同的环境中运行。