我创建了一个 Docker 卷来存储 json 文件docker volume create my-api-files。
这是docker-compose网络服务的文件:
version: '3'
services:
my-api:
image: node:alpine
expose:
- ${NODE_PORT}
volumes:
- ./:/api
- my-api-files:/files
working_dir: /api
command: npm run start
volumes:
my-api-files:
external: true
Run Code Online (Sandbox Code Playgroud)
现在,如何my-api-files在启动 Web 服务之前将 json 文件复制到 docker 卷docker-compose up?
我对docker很新,我尝试为不同的网站创建一个docker-compose图像.
除了我的卷外,一切都很好.
这是docker-compose的例子:
version: '2'
services:
website:
build:
context: ./dockerfiles/
args:
MYSQL_ROOT_PASSWORD: mysqlp@ssword
volumes:
- ./logs:/var/log
- ./html:/var/www
- ./nginx:/etc/nginx
- ./mysql-data:/var/lib/mysql
ports:
- "8082:80"
- "3307:3306"
Run Code Online (Sandbox Code Playgroud)
这是我的docker文件:
FROM php:5.6-fpm
ARG MYSQL_ROOT_PASSWORD
RUN export DEBIAN_FRONTEND=noninteractive; \
echo mysql-server mysql-server/root_password password $MYSQL_ROOT_PASSWORD | debconf-set-selections; \
echo mysql-server mysql-server/root_password_again password $MYSQL_ROOT_PASSWORD | debconf-set-selections;
RUN apt-get update && apt-get install -y -q mysql-server php5-mysql nginx wget
EXPOSE 80 3306
VOLUME ["/var/www", "/etc/nginx", "/var/lib/mysql", "/var/log"]
Run Code Online (Sandbox Code Playgroud)
一切都运行良好,期望我的所有文件夹都是空的进入我的主机卷.我想在我的文件夹中看到nginx conf和mysl数据.
我究竟做错了什么?
谢谢你的帮助.
编辑1:实际上问题是我希望docker-compose在我的docker目录中创建卷(如果它不存在),并且如果它存在则使用该卷,如https://stackoverflow.com/a/中所述. 39181484.但它似乎不起作用.
我的问题是我有一个docker-compose.yml文件和一个haproxy.cfg文件,我想让docker-compose将haproxy.cfg文件复制到docker容器中。根据Docker composer发布后的复制文件,我可以使用卷来执行此操作,但就我而言,出现以下错误。谁能帮助我实现这一目标。
以下是代码和所有内容
docker-compose.yml
version: "3.3"
services:
###After all services are up, we are initializing the gateway
gateway:
container_name: gateway-haproxy
image: haproxy
volumes:
- .:/usr/local/etc/haproxy
ports:
- 80:80
network_mode: "host"
Run Code Online (Sandbox Code Playgroud)
资料夹结构
命令输出
root@ubuntu:/home/karunesh/Desktop/Stuff/SelfStudy/DevOps/docker# docker-compose up
Creating gateway-haproxy ...
Creating gateway-haproxy ... done
Attaching to gateway-haproxy
gateway-haproxy | <7>haproxy-systemd-wrapper: executing /usr/local/sbin/haproxy -p /run/haproxy.pid -f /usr/local/etc/haproxy/haproxy.cfg -Ds
gateway-haproxy | [ALERT] 219/163305 (6) : [/usr/local/sbin/haproxy.main()] No enabled listener found (check for 'bind' directives) …Run Code Online (Sandbox Code Playgroud)