我正在用我的 php 项目测试 docker。测试中一切正常,但如果我添加ENTRYPOINT,docker 就会重新启动。
这是我的 docker compose 文件
version: "3.7"
services:
#Laravel App
app:
build:
args:
user: maruan
uid: 1000
context: ./docker/7.4
dockerfile: Dockerfile
# command: sh -c "start-container.sh"
image: laravel-app
restart: unless-stopped
working_dir: /var/www/
volumes:
- ./:/var/www
networks:
- app-network
#Nginx Service
nginx:
image: nginx:alpine
restart: unless-stopped
ports:
- 8000:80
volumes:
- ./:/var/www
- ./docker/7.4/nginx/conf.d:/etc/nginx/conf.d/default.conf
networks:
- app-network
#Mysl Service
db:
image: mysql:8
restart: unless-stopped
environment:
MYSQL_DATABASE: ${DB_DATABASE}
MYSQL_ROOT_PASSWORD: ${DB_PASSWORD}
MYSQL_PASSWORD: ${DB_PASSWORD}
MYSQL_USER: ${DB_USERNAME}
networks:
- …Run Code Online (Sandbox Code Playgroud) 在 docker-compose 文件中定义服务时,何时使用host.docker.internal主机的 ip,何时需要使用容器的名称?
我正在使用Docker Compose来构建我的第一台Docker机器.我想安装Docker有PHP-FPM 7,Nginx和MySQL(使用MariaDB).
这是我的docker-compose.yml
version: '2'
services:
nginx:
image: nginx:latest
ports:
- "80:80"
volumes:
- ./nginx/site.conf:/etc/nginx/conf.d/default.conf
- ./logs/nginx-error.log:/var/log/nginx/error.log
- ./logs/nginx-access.log:/var/log/nginx/access.log
- ./public:/usr/share/nginx/html
links:
- phpfpm
phpfpm:
image: php:7-fpm
volumes:
- ./public:/usr/share/nginx/html
- ./logs/log.conf:/usr/local/etc/php-fpm.d/zz-log.conf
mariadb:
image: mariadb
environment:
MYSQL_ROOT_PASSWORD: admin
MYSQL_DATABASE: admin
MYSQL_USER: admin
MYSQL_PASSWORD: admin
volumes:
- ./database:/var/lib/mysql
Run Code Online (Sandbox Code Playgroud)
Docker正确启动但是当我尝试使用mysql_connect连接到index.php中的数据库时,我得到错误:
致命错误:未捕获错误:在/usr/share/nginx/html/index.php:7中调用未定义函数mysql_connect()堆栈跟踪:#us {/}////////////////////////在第7行
这是我的index.php
<?php
$username = "admin";
$password = "admin";
$hostname = "localhost";
//connection to the database
$dbhandle = mysql_connect($hostname, $username, $password)
or die("Unable to connect to MySQL");
echo "Connected to …Run Code Online (Sandbox Code Playgroud) 我对 Docker 完全陌生。我想使用 Docker 安装Transmission(即我不想使用linuxserver.io/transmission)
目前我的Dockerfile是:
RUN apt-get update -y
RUN apt-get install transmission-daemon -y
EXPOSE 9091 51413/tcp 51413/udp
Run Code Online (Sandbox Code Playgroud)
但是如何给出settings.json文件呢?如何运行我的 Dockerfile?我需要docker-compose.yml文件吗?
先感谢您 :)
transmission docker dockerfile docker-compose transmission-daemon