Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

通过docker部署的会出现显示不了验证码的情况 #5

Closed
ayanami-desu opened this issue Jun 4, 2022 · 13 comments
Closed

Comments

@ayanami-desu
Copy link

请问可能在哪个地方出了问题,启用了.env中的app_debug也没找到有用的报错日志
我猜测可能的原因:没有启用ziparchieve;没有安装验证码拓展

@flucont
Copy link
Owner

flucont commented Jun 4, 2022

应该是没有安装php用的GD类库

@ayanami-desu
Copy link
Author

Call to undefined function think\captcha\imagecreate()

Call Stack
in Captcha.php line 181
at Captcha->create(null)
at call_user_func_array([object(Captcha), 'create'], [null]) in Facade.php line 96
at Facade::__callStatic('create', [null]) in helper.php line 22
at captcha() in Admin.php line 16
at Admin->verifycode()
at ReflectionMethod->invokeArgs(object(Admin), []) in Container.php line 344```
…………
…………

找到了详细的报错日志

@emengweb
Copy link

emengweb commented Jun 5, 2022

求一个可以docker部署的镜像,谢谢(*°∀°)=3

@captainstdin
Copy link

求一个可以docker部署的镜像,谢谢(*°∀°)=3

我已写好了, 有email联系下?

@captainstdin
Copy link

captainstdin commented Jun 5, 2022

求一个可以docker部署的镜像,谢谢(*°∀°)=3

如果是 docker-composer 启动,在这个项目中的.env 中 database数据库地址hostname=mariadb

Dockerfile:

FROM alpine:latest
#安装init
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories \
	&& apk update \
    && apk add git wget curl nload php8-cli php8-redis php8-pcntl php8-posix php8-iconv php8-pdo php8-gd php8-pdo_mysql php8-zip php8-gd php8-fileinfo \
      php8-pecl-event  php8-curl php8-json php8-xml  php8-openssl   php8-mysqli php8-common php8-ctype php8-phar php8-mbstring php8-bcmath  \
    && ln -s /usr/bin/php8 /usr/bin/php \
    && php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');" \
    && php composer-setup.php \
    && php -r "unlink('composer-setup.php');" \
    && php composer.phar config -g repo.packagist composer https://mirrors.aliyun.com/composer/ \
    && ln -s /app/composer.phar /usr/bin/composer


WORKDIR /app
#COPY / /app

RUN   mkdir -p /tmp/logs \
      && mkdir -p /tmp/sessions \
      && mkdir -p /tmp/views \
      && rm -rf /app/runtime \
      && ln -s /tmp  /app/runtime

#暴露 http 
EXPOSE 8000
VOLUME /app


CMD ["php","/app/think","run"]

# docker build -t dtmachine:latest .
# docker run -it -p8080:8000   youBuildName

docker-composer:

version: "3.0"
services:
  dtmachine:
    build: ./
    ports:
      - "8000:88"
    volumes:
      - ./:/app/   #宿主机:容器
    dns:
      - 223.5.5.5
      - 223.6.6.6
    depends_on:
      - mariadb
    networks:
      - dtmachine-network
        
  mariadb:
    image: qqfirst/mariadb:latest
    ports:
      - "3306:3306"
    environment:
      ROOT_PASSWORD : "123456"
      DATABASE : "bt"
    volumes:
      - ./mysql:/var/lib/mysql
    dns: 
      - 223.5.5.5
      - 223.6.6.6
    networks:
      - dtmachine-network

networks:
  dtmachine-network:
    # driver:  custom-driver-1

@emengweb
Copy link

emengweb commented Jun 5, 2022

十分感谢!
docker-composer YYDS!

@emengweb
Copy link

emengweb commented Jun 8, 2022

容器启动失败,提示找不到文件,奇怪,Dockerfile明明放在btcloud目录下,也开了映射的,求指点

PHP Fatal error:  Uncaught Error: Failed opening required '/app/vendor/autoload.php' (include_path='.:/usr/share/php8') in /app/think:7
Stack trace:
#0 {main}
  thrown in /app/think on line 7```

@captainstdin
Copy link

captainstdin commented Jun 8, 2022

容器启动失败,提示找不到文件,奇怪,Dockerfile明明放在btcloud目录下,也开了映射的,求指点

PHP Fatal error:  Uncaught Error: Failed opening required '/app/vendor/autoload.php' (include_path='.:/usr/share/php8') in /app/think:7
Stack trace:
#0 {main}
  thrown in /app/think on line 7```

composer没有拉取,我写忘了

docker exec -it container_name php /app/composer.phar install

或者 dockerfile 中追加


RUN php /app/composer.phar install
WORKDIR /app
#COPY / /app

@emengweb
Copy link

emengweb commented Jun 8, 2022

容器启动失败,提示找不到文件,奇怪,Dockerfile明明放在btcloud目录下,也开了映射的,求指点

PHP Fatal error:  Uncaught Error: Failed opening required '/app/vendor/autoload.php' (include_path='.:/usr/share/php8') in /app/think:7
Stack trace:
#0 {main}
  thrown in /app/think on line 7```

composer没有拉取,我写忘了

docker exec -it container_name php /app/composer.phar install

或者 dockerfile 中追加


RUN php /app/composer.phar install
WORKDIR /app
#COPY / /app

添加了,依旧提示找不到文件。。。这是我修改后的dockerfile

FROM alpine:latest
#安装init
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories \
	&& apk update \
    && apk add git wget curl nload php8-cli php8-redis php8-pcntl php8-posix php8-iconv php8-pdo php8-gd php8-pdo_mysql php8-zip php8-gd php8-fileinfo \
      php8-pecl-event  php8-curl php8-json php8-xml  php8-openssl   php8-mysqli php8-common php8-ctype php8-phar php8-mbstring php8-bcmath
RUN ln -sf /usr/bin/php8 /usr/bin/php \
    && php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');" \
    && php composer-setup.php \
    && php -r "unlink('composer-setup.php');" \
    && php composer.phar config -g repo.packagist composer https://mirrors.aliyun.com/composer/ \
    && ln -s /app/composer.phar /usr/bin/composer

#RUN php /app/composer.phar install
WORKDIR /app
#COPY / /app

RUN   mkdir -p /tmp/logs \
      && mkdir -p /tmp/sessions \
      && mkdir -p /tmp/views \
      && rm -rf /app/runtime \
      && ln -s /tmp  /app/runtime

#暴露 http 
EXPOSE 8000
VOLUME /app

CMD ["php","/usr/bin/composer","install","--no-dev"]
CMD ["php","/app/think","run"]


# docker build -t dtmachine:latest .
# docker run -it -p8080:8000   youBuildName

@emengweb
Copy link

emengweb commented Jun 8, 2022

搞定了,使用Release版本替换了clone的源文件,禁用了CMD ["php","/usr/bin/composer","install","--no-dev"],还将所有程序文件都移动到project目录下 问题解决了,还差一步自动初始化数据库,我去查查资料

@emengweb
Copy link

emengweb commented Jun 8, 2022

容器启动失败,提示找不到文件,奇怪,Dockerfile明明放在btcloud目录下,也开了映射的,求指点

PHP Fatal error:  Uncaught Error: Failed opening required '/app/vendor/autoload.php' (include_path='.:/usr/share/php8') in /app/think:7
Stack trace:
#0 {main}
  thrown in /app/think on line 7```

composer没有拉取,我写忘了

docker exec -it container_name php /app/composer.phar install

或者 dockerfile 中追加


RUN php /app/composer.phar install
WORKDIR /app
#COPY / /app

定位到问题了,进入到容器内访问8000端口的服务是正常的。
最后居然是端口映射到88上导致的,修改docker-compose.yml端口8000就好了 😂

    ports:
      - 8000:8000

数据库也配置好了,端口直接访问后提示ERR_EMPTY_RESPONSE,curl访问也报错

# curl 127.0.0.1:8000/admin
curl: (56) Recv failure: Connection reset by peer

这是dtmachine的日志,求指点T.T:

ThinkPHP Development server is started On 
You can exit with `CTRL-C`
Document root is: /app/public
[Wed Jun  8 08:27:44 2022] PHP 8.0.19 Development Server (http://0.0.0.0:8000) started

定位到问题原因,CF开启了强制HTTPS跳转,导致请求失败,关闭选项后就可以正常安装插件了,问题解决!

@captainstdin
Copy link

容器启动失败,提示找不到文件,奇怪,Dockerfile明明放在btcloud目录下,也开了映射的,求指点

PHP Fatal error:  Uncaught Error: Failed opening required '/app/vendor/autoload.php' (include_path='.:/usr/share/php8') in /app/think:7
Stack trace:
#0 {main}
  thrown in /app/think on line 7```

composer没有拉取,我写忘了
docker exec -it container_name php /app/composer.phar install
或者 dockerfile 中追加


RUN php /app/composer.phar install
WORKDIR /app
#COPY / /app

定位到问题了,进入到容器内访问8000端口的服务是正常的。 最后居然是端口映射到88上导致的,修改docker-compose.yml端口8000就好了 😂

    ports:
      - 8000:8000

数据库也配置好了,端口直接访问后提示ERR_EMPTY_RESPONSE,curl访问也报错

# curl 127.0.0.1:8000/admin
curl: (56) Recv failure: Connection reset by peer

这是dtmachine的日志,求指点T.T:

ThinkPHP Development server is started On 
You can exit with `CTRL-C`
Document root is: /app/public
[Wed Jun  8 08:27:44 2022] PHP 8.0.19 Development Server (http://0.0.0.0:8000) started

私聊下联系方式吧?adminv@88.com,我是宝塔装不上,所以没测试。

@emengweb
Copy link

emengweb commented Jun 8, 2022

容器启动失败,提示找不到文件,奇怪,Dockerfile明明放在btcloud目录下,也开了映射的,求指点

PHP Fatal error:  Uncaught Error: Failed opening required '/app/vendor/autoload.php' (include_path='.:/usr/share/php8') in /app/think:7
Stack trace:
#0 {main}
  thrown in /app/think on line 7```

composer没有拉取,我写忘了
docker exec -it container_name php /app/composer.phar install
或者 dockerfile 中追加


RUN php /app/composer.phar install
WORKDIR /app
#COPY / /app

数据库也配置好了,端口直接访问后提示ERR_EMPTY_RESPONSE,curl访问也报错

# curl 127.0.0.1:8000/admin
curl: (56) Recv failure: Connection reset by peer

这是dtmachine的日志,求指点T.T:

ThinkPHP Development server is started On 
You can exit with `CTRL-C`
Document root is: /app/public
[Wed Jun  8 08:27:44 2022] PHP 8.0.19 Development Server (http://0.0.0.0:8000) started

容器启动失败,提示找不到文件,奇怪,Dockerfile明明放在btcloud目录下,也开了映射的,求指点

PHP Fatal error:  Uncaught Error: Failed opening required '/app/vendor/autoload.php' (include_path='.:/usr/share/php8') in /app/think:7
Stack trace:
#0 {main}
  thrown in /app/think on line 7```

composer没有拉取,我写忘了
docker exec -it container_name php /app/composer.phar install
或者 dockerfile 中追加


RUN php /app/composer.phar install
WORKDIR /app
#COPY / /app

定位到问题了,进入到容器内访问8000端口的服务是正常的。 最后居然是端口映射到88上导致的,修改docker-compose.yml端口8000就好了 😂

    ports:
      - 8000:8000

数据库也配置好了,端口直接访问后提示ERR_EMPTY_RESPONSE,curl访问也报错

# curl 127.0.0.1:8000/admin
curl: (56) Recv failure: Connection reset by peer

这是dtmachine的日志,求指点T.T:

ThinkPHP Development server is started On 
You can exit with `CTRL-C`
Document root is: /app/public
[Wed Jun  8 08:27:44 2022] PHP 8.0.19 Development Server (http://0.0.0.0:8000) started

私聊下联系方式吧?adminv@88.com,我是宝塔装不上,所以没测试。

联系你啦~这个邮箱好厉害!

@ayanami-desu ayanami-desu closed this as not planned Won't fix, can't repro, duplicate, stale Dec 20, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants