前言
本文不涉及相关原理,作者小白,只是记录下利用Github的Action来创建镜像的过程,防止没有root权限、自己电脑使用不了Docker的场景。作为大家学习生信过程的小小参考。
1.创建新仓库
2.准备Dockerfile文件
在新仓库的根目录下,创建名为Dockerfile的文件,因为目的是创建minimap2的容器,因此可复制以下代码到Dockerfile文件(酌情修改):
FROM Dockerhub上你想参考的镜像
RUN apt-get update \
&& apt-get install -y git \
&& git clone https://github.com/lh3/minimap2 \
&& cd minimap2 \
&& make
WORKDIR /app
CMD ["bash"]
更多Dockerfile的构建可以参考其他大佬文章,这是最简单的例子,只能保证不会报错。
更新关于PROGENy的Dockerfile文件:
FROM 你想pull的镜像
RUN R -e 'if (!requireNamespace("BiocManager", quietly = TRUE)) install.packages("BiocManager")' \
&& R -e 'BiocManager::install("progeny")'
WORKDIR /app
CMD ["bash"]
BioManager是在R上运行的,因此Dockerfile相应使用了关于R语言的命令。
3.配置secret
如果要上传到你的docker hub上,需要账号密码。首先登录dockerhub,转到你的帐户设置(My Account)页面,找到 "Security" 选项。点击New Access Token应该能够生成一个新的Token。确保为此令牌授予适当的权限(Read、Write、Delete),以执行GitHub Actions 执行的操作。复制生成的 Access Token。
在你的 GitHub 仓库中,转到 Settings -> Secrets,并添加两个 Secrets:DOCKERHUB_USERNAME
和 DOCKERHUB_TOKEN
,分别为你的 Docker Hub 用户名和访问令牌。
4.创建 GitHub Actions Workflow 文件
在你的 GitHub 仓库中创建一个名为 .github/workflows/main.yml
的文件,并将以下内容复制粘贴到其中(注意看,记得修改名字):
name: Build and Push Docker Image
on:
push:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v4
- name: Build Docker Image
run: docker build -t your_dockerhub_name/minimap2 .
- name: Login to Docker Hub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_TOKEN }}
- name: Push Docker Image to Docker Hub
run: docker push your_dockerhub_name/minimap2
更多修改可参考Github官方文章:Workflow syntax for GitHub Actions - GitHub Docs
在完成这一步后,如果你是在线操作,那么commit此yml文件后,可以在Action处看到正在运行的作业,点击可以查看运行进展。如果是在本地进行部署,那么推送到Github即可。