"# docker"
volumes:
- type: bind
source: /var/run/docker.sock
# source: //var/run/docker.sock # windows
target: /var/run/docker.sock
- type: bind # if not work, can delete this bind
source: /usr/bin/docker
target: /usr/bin/docker
user: root
RUN echo "deb http://mirrors.aliyun.com/debian/ bookworm main contrib non-free" > /etc/apt/sources.list \
&& echo "deb http://mirrors.aliyun.com/debian/ bookworm-updates main contrib non-free" >> /etc/apt/sources.list \
&& echo "deb http://mirrors.aliyun.com/debian/ bookworm-backports main contrib non-free" >> /etc/apt/sources.list \
&& echo "deb http://mirrors.aliyun.com/debian-security/ bookworm-security main contrib non-free" >> /etc/apt/sources.list
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
build-essential \
python3
RUN echo "deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse" > /etc/apt/sources.list \
&& echo "deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse" >> /etc/apt/sources.list \
&& echo "deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse" >> /etc/apt/sources.list \
&& echo "deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse" >> /etc/apt/sources.list
extra_hosts:
- "host.docker.internal:host-gateway"
- "github.com:20.205.243.166"
services:
nginx:
image: nginx:latest
container_name: superset_nginx
restart: unless-stopped
ports:
- "80:80"
extra_hosts:
- "host.docker.internal:host-gateway"
- "github.com:20.205.243.166"
volumes:
- ./docker/nginx/nginx.conf:/etc/nginx/nginx.conf:ro
#!/bin/bash
# @Author: longfengpili
# @Date: 2024-03-25 13:39:46
# @Last Modified by: longfengpili
# @Last Modified time: 2024-06-07 13:33:30
set -a
source /workspace/trinoapi/.env
set +a
ENV http_proxy=${HTTP_PROXY}
ENV https_proxy=${HTTPS_PROXY}.env文件
-
用途:
.env文件用于存储项目的全局配置变量。Docker Compose 在运行时会自动加载与docker-compose.yml文件位于同一目录下的.env文件。- 适用于简单的、全局的变量替换。
-
特点:
- 自动加载,省去在
docker-compose.yml中显式引用的步骤。 - 通常用于为
docker-compose.yml中的变量提供默认值。
- 自动加载,省去在
-
示例:
.env文件:IMAGE_TAG=latest HOST_PORT=8080 CONTAINER_PORT=80docker-compose.yml文件:version: '3.8' services: web: image: "myapp:${IMAGE_TAG}" ports: - "${HOST_PORT}:${CONTAINER_PORT}"
environment
-
用途:
- 在
docker-compose.yml文件中为某个服务直接指定环境变量。
- 在
-
特点:
- 高优先级,适用于明确、关键的变量配置。
- 支持直接在
docker-compose.yml中书写,简单直接。
-
示例:
version: '3.8' services: database: image: mysql environment: MYSQL_ROOT_PASSWORD: example MYSQL_DATABASE: mydb HOST_IP: ${HOST_IP} # 使用 .env 中的变量
env_file
-
用途:
- 可以在
docker-compose.yml中指定一个或多个文件,从中加载大量环境变量。
- 可以在
-
特点:
- 用于管理大量或复用的环境变量,保持
docker-compose.yml文件简洁。 - 需要显式在服务配置中引用这些文件。
- 用于管理大量或复用的环境变量,保持
-
示例:
env.list文件:ENV_VAR1=value1 ENV_VAR2=value2docker-compose.yml:version: '3.8' services: app: image: myapp env_file: - ./env.list
- 覆盖关系
-
environment覆盖env_file:- 在同一个服务中,如果
environment和env_file都定义了相同的变量,environment配置具有更高的优先级并会覆盖来自env_file的设置。
- 在同一个服务中,如果
-
覆盖示例:
假设
env.list文件内容是:APP_ENV=production DEBUG=falsedocker-compose.yml文件为:version: '3.8' services: app: image: myapp env_file: - ./env.list environment: APP_ENV: development # 覆盖 env_file EXTRA_VAR: extra_value
在这个例子中,
APP_ENV的值将是development,因为在environment中的定义覆盖了env_file中的定义。