如何在docker-compose.yml文件中运行命令?

时间:2020-03-15 18:10:44

标签: php laravel docker

我有laravel项目,我想为其创建docker 我想自动化 我要运行这个建议: { PHP的工匠键:生成 PHP的工匠迁移 php artisan queue:work --daemon } 及其我的docker-compose.yml文件

version: '3'
services:

  #PHP Service
  app:
    build:
      context: .
      dockerfile: Dockerfile
    image: xxxx/lumen:Library
    container_name: Library
    restart: unless-stopped
    tty: true
    environment:
      SERVICE_NAME: app
      SERVICE_TAGS: dev
    working_dir: /var/www
    volumes:
      - ./:/var/www
    networks:
      - app-network

  #Nginx Service
  webserver:
    image: nginx:alpine
    container_name: LibraryWebserver
    restart: unless-stopped
    tty: true
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./:/var/www
      - ./nginx/conf.d/:/etc/nginx/conf.d/
    networks:
      - app-network

  #MySQL Service
  db:
    image: mysql:5.7.22
    container_name: Librarydb
    restart: unless-stopped
    tty: true
    ports:
      - "3306:3306"
    environment:
      MYSQL_DATABASE: library
      MYSQL_ROOT_PASSWORD: Library!23
      MYSQL_USER: root
      MYSQL_PASSWORD: Library!23
      SERVICE_TAGS: dev
      SERVICE_NAME: mysql
    networks:
      - app-network
    volumes:
      - dbdata:/var/lib/mysql

#Docker Networks
networks:
  app-network:
    driver: bridge
#Volumes
volumes:
  dbdata:
    driver: local


我尝试使用命令:php artisan migrate,但它什么也不做
并使用
命令:bash -c "php artisan migrate"
命令:'php artisan migrate'

1 个答案:

答案 0 :(得分:0)

您可以使用command,如以下示例所示。容器启动并运行后,它将运行命令。

version: "3.0"
services:
  app:
    image: busybox
    command: top
    networks:
      app_net:
        link_local_ips:
          - 57.123.22.11