通过dockerfile和postgresql12的离线安装包制作单机版的docker镜像,并容器内启动ssh服务
时间: 2024-05-25 09:18:25 浏览: 108
# Dockerfile
FROM ubuntu:18.04
# 安装必要的依赖
RUN apt-get update && apt-get install -y \
openssh-server \
postgresql-12
# 创建 postgres 用户
RUN useradd -m postgres
# 设置 postgres 用户的密码
RUN echo "postgres:postgres" | chpasswd
# 启动 ssh 服务
RUN mkdir /var/run/sshd
EXPOSE 22
CMD ["/usr/sbin/sshd", "-D"]
# 从离线安装包导入数据库文件
COPY postgresql-12.tar.gz /tmp/
RUN tar -xzvf /tmp/postgresql-12.tar.gz -C /var/lib/postgresql && \
chown -R postgres:postgres /var/lib/postgresql/12/main && \
rm /tmp/postgresql-12.tar.gz
# 设置 postgres 用户的环境变量
ENV PGDATA /var/lib/postgresql/12/main
ENV PGHOST localhost
ENV PGUSER postgres
# 设置 PATH 环境变量
ENV PATH="/usr/lib/postgresql/12/bin:${PATH}"
# 创建数据库
RUN service postgresql start && \
su - postgres -c "psql -c \"CREATE USER test WITH PASSWORD 'test';\"" && \
su - postgres -c "psql -c \"CREATE DATABASE test OWNER test;\"" && \
service postgresql stop
# 设置默认工作目录
WORKDIR /home/postgres
# 设置默认的命令
CMD ["bash"]
阅读全文