通过dockerfile和postgresql12的离线安装包制作单机版的docker镜像
时间: 2024-04-29 16:23:22 浏览: 160
步骤如下:
1. 创建一个文件夹用于存放制作镜像所需的文件和脚本。
2. 下载 PostgreSQL 12 的离线安装包,将其复制到该文件夹下。
3. 创建一个 Dockerfile 文件,编写以下内容:
```
# 基础镜像
FROM ubuntu:18.04
# 复制 PostgreSQL 的离线安装包到镜像中
COPY postgresql-12.0.tar.gz /opt/postgresql-12.0.tar.gz
# 解压安装包并安装 PostgreSQL
RUN apt-get update \
&& apt-get install -y \
build-essential \
zlib1g-dev \
libreadline-dev \
libxml2-dev \
libssl-dev \
libossp-uuid-dev \
&& cd /opt \
&& tar zxvf postgresql-12.0.tar.gz \
&& cd postgresql-12.0 \
&& ./configure \
&& make \
&& make install \
&& rm -rf /opt/postgresql-12.0 \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
# 设置环境变量
ENV PGDATA /var/lib/postgresql/data
ENV PATH $PATH:/usr/local/pgsql/bin
# 创建运行 PostgreSQL 的用户和目录
RUN useradd postgres \
&& mkdir -p /var/lib/postgresql/data \
&& chown -R postgres:postgres /var/lib/postgresql
# 暴露 PostgreSQL 默认端口
EXPOSE 5432
# 指定启动命令
CMD ["su", "postgres", "-c", "postgres -D $PGDATA"]
```
4. 执行以下命令进行镜像构建:
```
docker build -t postgresql12 .
```
其中,`postgresql12` 是镜像名称,可以根据需要进行修改。
5. 镜像构建完成后,可以通过以下命令运行容器:
```
docker run -d -p 5432:5432 --name postgresql12 postgresql12
```
其中,`postgresql12` 是镜像名称,可以根据需要进行修改;`5432:5432` 表示将容器内的 PostgreSQL 默认端口映射到宿主机的 5432 端口上;`--name postgresql12` 表示指定容器名称为 postgresql12。
阅读全文