直接采用个人维护的、相对热度较高、最后更新时间比较近的镜像:tiredofit/self-service-password
.
├── compose # 存放 docker-compose 启动相关文件
│ └── docker-compose.yml # docker-compose 配置
├── data # 容器映射目录-php项目
│ ├── conf
│ ├── css
│ ├── fonts
│ ├── github-issues-to-changelog.pl
│ ├── images
│ ├── index.php
│ ├── js
│ ├── lang
│ ├── lib
│ ├── LICENCE
│ ├── menu.php
│ ├── packaging
│ ├── pages
│ │ ├── change.php
│ │ ├── changesshkey.php
│ │ ├── resetbyquestions.php
│ │ ├── resetbytoken.php
│ │ ├── sendsms.php
│ │ ├── sendtoken.php # 重置密码发送 token 链接到邮箱
│ │ └── setquestions.php
│ ├── README.md
│ ├── scripts
│ └── tests
└── logs # 容器映射目录-日志数据
cat > "/srv/self-service-password/compose/docker-compose.yml" << EOF
version: '3'
services:
self-service-password:
image: 'tiredofit/self-service-password:latest'
container_name: 'self-service-password'
ports:
- '8089:80'
environment:
- LDAP_SERVER=ldap://<host>:<port>
- LDAP_BINDDN=cn=admin,dc=chilson,dc=com
- LDAP_BINDPASS=bindpassword
- LDAP_BASE_SEARCH=ou=users,dc=chilson,dc=com
- MAIL_FROM=chilson@example.com
- SMTP_DEBUG=0
- SMTP_HOST=smtp.exmail.qq.com
- SMTP_USER=chilson@example.com
- SMTP_PASS=password
- SMTP_PORT=465
- SMTP_SECURE_TYPE=ssl
- SMTP_AUTH_ON=true
volumes:
- /srv/self-service-password/data:/www/ssp
- /srv/self-service-password/logs:/www/logs
EOF
docker-compose up -d
# php 脚本发送到邮件的重置密码链接在原本的代码里捕捉不到真正的请求域名
vim /srv/self-service-password/data/pages/sendtoken.php
#==============================================================================
# Send token by mail
#==============================================================================
if ( $result === "" ) {
if ( empty($reset_url) ) {
# 这里省略了
# 调整的脚本
$reset_url = $method."://".$_SERVER['HTTP_HOST'].$script_name;
#$reset_url = $method."://".$server_name.$script_name;
}
# 这里省略了
}
docker 入门:https://www.runoob.com/docker/docker-tutorial.html
docker-compose 入门:https://www.runoob.com/docker/docker-compose.html