我的 Flask 应用程序身份验证工作正常,但是当我使用 alpine 图像对接整个应用程序时,身份验证被破坏
My flask Application authentication is working fine but when I dockerise the whole application using an alpine image the authentication is broken
我有一个基本的小型 Flask 应用程序,当 运行 在本地身份验证工作正常时,但是当我 dockerzise 使用 alpine 图像的整个应用程序时,身份验证被破坏。即使我输入了正确的凭据,我的应用程序也会登录,但会显示一条错误消息,其中显示 "Please log in to access this page".
我使用 Apache2 作为我的反向代理,httpd:alpine 作为我的 docker 图像。
这是我的 docker 文件
FROM httpd:2.4.38-alpine
RUN apk --update --no-cache add python3 python3-dev apache2 wget ca-certificates make gcc musl-dev py-pip py-virtualenv
COPY ./app_trac/apache2-vhost.conf conf/extra/httpd-vhosts.conf
RUN sed -i -e 's/^#ServerName.*$/ServerName vacation.ps-office.local:80/' conf/httpd.conf
RUN sed -i -e "s|#Include conf/extra/httpd-vhosts.conf|Include conf/extra/httpd-vhosts.conf|g" conf/httpd.conf
RUN cd /usr/local/apache2/modules/
RUN mkdir vacation
COPY ./app_trac/requirements.txt htdocs/app/requirements.txt
RUN pip3 install -r htdocs/app/requirements.txt
RUN pip3 install mod_wsgi
RUN mod_wsgi-express module-config
RUN chmod -R a+rwx htdocs/app
EXPOSE 80
CMD ["httpd", "-D", "FOREGROUND"]
这是我的应用程序的加载和保存用户功能,我正在使用 LDAP 身份验证。
@login_manager.user_loader
def load_user(user_id):
if user_id in users:
return users[user_id]
return None
@ldap_manager.save_user
def save_user(dn, username, data, memberships):
user = User(dn = dn, username = username, data = data)
users[dn] = user
return user
我基本上做错了什么?我只收到 docker 的身份验证问题。 nginx 似乎工作正常。
您必须允许容器访问 LDAP 服务器,当 运行 容器的网络访问受到限制时。
也许这对你有帮助LDAP authentication in Docker container
我有一个基本的小型 Flask 应用程序,当 运行 在本地身份验证工作正常时,但是当我 dockerzise 使用 alpine 图像的整个应用程序时,身份验证被破坏。即使我输入了正确的凭据,我的应用程序也会登录,但会显示一条错误消息,其中显示 "Please log in to access this page".
我使用 Apache2 作为我的反向代理,httpd:alpine 作为我的 docker 图像。 这是我的 docker 文件
FROM httpd:2.4.38-alpine
RUN apk --update --no-cache add python3 python3-dev apache2 wget ca-certificates make gcc musl-dev py-pip py-virtualenv
COPY ./app_trac/apache2-vhost.conf conf/extra/httpd-vhosts.conf
RUN sed -i -e 's/^#ServerName.*$/ServerName vacation.ps-office.local:80/' conf/httpd.conf
RUN sed -i -e "s|#Include conf/extra/httpd-vhosts.conf|Include conf/extra/httpd-vhosts.conf|g" conf/httpd.conf
RUN cd /usr/local/apache2/modules/
RUN mkdir vacation
COPY ./app_trac/requirements.txt htdocs/app/requirements.txt
RUN pip3 install -r htdocs/app/requirements.txt
RUN pip3 install mod_wsgi
RUN mod_wsgi-express module-config
RUN chmod -R a+rwx htdocs/app
EXPOSE 80
CMD ["httpd", "-D", "FOREGROUND"]
这是我的应用程序的加载和保存用户功能,我正在使用 LDAP 身份验证。
@login_manager.user_loader
def load_user(user_id):
if user_id in users:
return users[user_id]
return None
@ldap_manager.save_user
def save_user(dn, username, data, memberships):
user = User(dn = dn, username = username, data = data)
users[dn] = user
return user
我基本上做错了什么?我只收到 docker 的身份验证问题。 nginx 似乎工作正常。
您必须允许容器访问 LDAP 服务器,当 运行 容器的网络访问受到限制时。
也许这对你有帮助LDAP authentication in Docker container