Flywi的个人博客

  • 首页

  • 归档

  • 分类

  • 关于

Dockerfile问题解决

发表于 2019-03-21

在windows环境中使用Dockerfile编译自己的镜像时运行镜像会出现报错

standard_init_linux.go:190: exec user process caused "no such file or directory"

部分代码如下

1
2
3
4
COPY docker-entrypoint.sh /usr/local/bin/
RUN ln -s usr/local/bin/docker-entrypoint.sh /docker-entrypoint.sh
# ENTRYPOINT
ENTRYPOINT ["/docker-entrypoint.sh"]

百度,谷歌查了一遍,才知道怎么回事。
具体点击链接。
简单点说就是window文件换行符为\r\n,linux为\n,拷贝到镜像里的docker-entrypoint.sh无法被识别为可执行文件,所以报错

解决方法

1

docker-entrypoint.sh保存时候选择LF保存

2

使用dos2unix

上述Dockerfile代码修改为:

1
2
3
4
5
6
COPY docker-entrypoint.sh /usr/local/bin/
RUN yum install -y dos2unix
RUN dos2unix /usr/local/bin/docker-entrypoint.sh
RUN ln -s /usr/local/bin/docker-entrypoint.sh /docker-entrypoint.sh
# ENTRYPOINT
ENTRYPOINT ["/docker-entrypoint.sh"]

最近使用docker碰到的一些问题记录下

发表于 2018-08-31

最近在使用了下docker,期间遇到了不少问题,特别记录下:

centos7使用systemctl报错问题

报Failed to get D-Bus connection: Operation not permitted错误

其实是权限问题

1.如果是docker命令的话加入docker run --privileged -d ...就行。

2.如果使用docker-compose.yml启动的话在配置文件中加入

1
2
3
4
services:
web:
image: ...
privileged: true

就可以了

centos7使用systemctl配置nginx自启动

这个在网上有各种不一样的版本,个人推荐个简单的。

1.首先使用vim /lib/systemd/system/nginx.service创建nginx.service 文件。

2.文件中写入

1
2
3
4
5
6
7
8
9
10
11
12
13
[Unit]
Description=nginx
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx -c <nginx配置文件地址,这里可以不填>
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true

[Install]
WantedBy=multi-user.target

上面的/usr/local/nginx/sbin/nginx改成自己的nginx地址就行,保存退出。

3.使用systemctl enable nginx.service把nginx加入开机启动服务就ok了。

再次使用systemctl可以看到nginx.service加入到启动列表中

第二篇博客

发表于 2018-07-17

为什么使用博客?

主要是记录工作、学习中的一些问题,以备不时之需!

第一篇博客

发表于 2018-07-17

这个博客是基于Github 和 Hexo所作的,有兴趣的同志可以去看看相关的教程
自己做一个,本身还是很简单的。

##
参考地址:点击链接

1
start my blog!!

ps

其实很早就想搞一个自己的博客了。

Flywings

Flywings

个人博客(纯属无聊之作)

4 日志
1 标签
RSS
GitHub E-Mail
© 2019 Flywings

Hosted by Coding Pages