Docker未重新启动和构建

Docker未重新启动和构建,docker,docker-compose,docker-machine,Docker,Docker Compose,Docker Machine,我停止使用芹菜 docker-compose stop celery 但当我再次尝试启动它并检查ps时,它不会重新启动 docker-compose ps radar_celery_1 celery worker -l info -A r ... Exit 1 radar_data_1 true Restarting

我停止使用芹菜

docker-compose stop celery
但当我再次尝试启动它并检查ps时,它不会重新启动

docker-compose ps

radar_celery_1     celery worker -l info -A r ...   Exit 1                                               
radar_data_1       true                             Restarting                                           
radar_nginx_1      /usr/sbin/nginx                  Up           0.0.0.0:80->80/tcp                      
radar_postgres_1   /docker-entrypoint.sh postgres   Up           5432/tcp                                
radar_rabbitmq_1   docker-entrypoint.sh rabbi ...   Up           25672/tcp, 4369/tcp, 5671/tcp, 5672/tcp 
radar_radar_1      bash -c /usr/local/bin/gun ...   Up           0.0.0.0:8002->8000/tcp                  
radar_redis_1      docker-entrypoint.sh redis ...   Up           6379/tcp                                
当我再次尝试构建它时,出现了一个消息错误

docker-compose up
Attaching to radar_celery_1
celery_1    | Traceback (most recent call last):
celery_1    |   File "/usr/local/bin/celery", line 11, in <module>
celery_1    |     sys.exit(main())
celery_1    |   File "/usr/local/lib/python2.7/site-packages/celery/__main__.py", line 30, in main
celery_1    |     main()
celery_1    |   File "/usr/local/lib/python2.7/site-packages/celery/bin/celery.py", line 81, in main
celery_1    |     cmd.execute_from_commandline(argv)
celery_1    |   File "/usr/local/lib/python2.7/site-packages/celery/bin/celery.py", line 793, in execute_from_commandline
celery_1    |     super(CeleryCommand, self).execute_from_commandline(argv)))
celery_1    |   File "/usr/local/lib/python2.7/site-packages/celery/bin/base.py", line 311, in execute_from_commandline
celery_1    |     return self.handle_argv(self.prog_name, argv[1:])
celery_1    |   File "/usr/local/lib/python2.7/site-packages/celery/bin/celery.py", line 785, in handle_argv
celery_1    |     return self.execute(command, argv)
celery_1    |   File "/usr/local/lib/python2.7/site-packages/celery/bin/celery.py", line 717, in execute
celery_1    |     ).run_from_argv(self.prog_name, argv[1:], command=argv[0])
celery_1    |   File "/usr/local/lib/python2.7/site-packages/celery/bin/worker.py", line 179, in run_from_argv
celery_1    |     return self(*args, **options)
celery_1    |   File "/usr/local/lib/python2.7/site-packages/celery/bin/base.py", line 274, in __call__
celery_1    |     ret = self.run(*args, **kwargs)
celery_1    |   File "/usr/local/lib/python2.7/site-packages/celery/bin/worker.py", line 212, in run
celery_1    |     state_db=self.node_format(state_db, hostname), **kwargs
celery_1    |   File "/usr/local/lib/python2.7/site-packages/celery/worker/__init__.py", line 95, in __init__
celery_1    |     self.app.loader.init_worker()
celery_1    |   File "/usr/local/lib/python2.7/site-packages/celery/loaders/base.py", line 128, in init_worker
celery_1    |     self.import_default_modules()
celery_1    |   File "/usr/local/lib/python2.7/site-packages/celery/loaders/base.py", line 116, in import_default_modules
celery_1    |     signals.import_modules.send(sender=self.app)
celery_1    |   File "/usr/local/lib/python2.7/site-packages/celery/utils/dispatch/signal.py", line 166, in send
celery_1    |     response = receiver(signal=self, sender=sender, **named)
celery_1    |   File "/usr/local/lib/python2.7/site-packages/amqp/utils.py", line 42, in __call__
celery_1    |     self.set_error_state(exc)
celery_1    |   File "/usr/local/lib/python2.7/site-packages/amqp/utils.py", line 39, in __call__
celery_1    |     **dict(self.kwargs, **kwargs) if self.kwargs else kwargs
celery_1    |   File "/usr/local/lib/python2.7/site-packages/celery/app/base.py", line 330, in _autodiscover_tasks
celery_1    |     self.loader.autodiscover_tasks(packages, related_name)
celery_1    |   File "/usr/local/lib/python2.7/site-packages/celery/loaders/base.py", line 252, in autodiscover_tasks
celery_1    |     related_name) if mod)
celery_1    |   File "/usr/local/lib/python2.7/site-packages/celery/loaders/base.py", line 273, in autodiscover_tasks
celery_1    |     return [find_related_module(pkg, related_name) for pkg in packages]
celery_1    |   File "/usr/local/lib/python2.7/site-packages/celery/loaders/base.py", line 299, in find_related_module
celery_1    |     return importlib.import_module('{0}.{1}'.format(package, related_name))
celery_1    |   File "/usr/local/lib/python2.7/importlib/__init__.py", line 37, in import_module
celery_1    |     __import__(name)
celery_1    |   File "/usr/src/app/provider/GG/tasks.py", line 30, in <module>
celery_1    |     class GGFetchBR(PeriodicSet, PeriodicTask):
celery_1    |   File "/usr/src/app/provider/GG/tasks.py", line 47, in GGFetchBR
celery_1    |     time = json.loads(config_parser.get('GG', 'time'))
celery_1    |   File "/usr/local/lib/python2.7/ConfigParser.py", line 618, in get
celery_1    |     raise NoOptionError(option, section)
celery_1    | ConfigParser.NoOptionError: No option 'time' in section: 'GG'
radar_celery_1 exited with code 1

那么,我该如何解决这个问题呢?我希望修复在我的python文件中导致错误的那一个

我实际上通过将文件复制到该容器中解决了它。因此,即使容器未运行,也可以复制文件

docker ps -a
1.)首先检查容器id,使用-a查看所有容器,甚至那些未运行的容器

docker ps -a
2.)复制需要更改的文件

docker-compose cp file <container_id>:/the/path/to/file
docker compose cp文件:/path/to/file

3.)再次尝试启动或构建图像

我通过将文件复制到该容器中解决了这个问题。因此,即使容器未运行,也可以复制文件

docker ps -a
1.)首先检查容器id,使用-a查看所有容器,甚至那些未运行的容器

docker ps -a
2.)复制需要更改的文件

docker-compose cp file <container_id>:/the/path/to/file
docker compose cp文件:/path/to/file

3.)再次尝试启动或构建映像

您可以使用“docker compose build--force recreate”强制重新创建映像。我猜这样做将创建每个映像。。是否可以仅在我的芹菜映像上重新创建?不幸的是,重新创建未工作。最后一个选项应该是删除所有容器和卷并重新构建。显然,用于radar_芹菜的映像不工作。这<代码>雷达芹菜1芹菜工人-l信息-A r。。。退出1显示该容器从未良好启动,而是以错误代码1退出。当您运行docker compose或docker stop时,您应该会看到退出代码=0,您可以使用“docker compose build--force recreate”强制重新创建服务。我猜这样做将创建每个图像。。是否可以仅在我的芹菜映像上重新创建?不幸的是,重新创建未工作。最后一个选项应该是删除所有容器和卷并重新构建。显然,用于radar_芹菜的映像不工作。这<代码>雷达芹菜1芹菜工人-l信息-A r。。。退出1显示该容器从未良好启动,而是以错误代码1退出。运行docker compose或docker stop时,您应该会看到退出代码=0