白字黑字记录,足以降低有人要你当替罪羔羊

记录可以少走一些坑

因为主管、同事的推坑陷害,背上莫须有的罪名,让你的分红考绩化为乌有,那你一定要观看这篇,毕竟防人之心不可无,多一些知识,就多一层防护

之前,介绍过一些使用docker会用到的基本指令,但每建一个相同的Container,并进Container执行指令、更新或下载一些套件,需要做大量的重复工作。工程师就是越懒越好,重复性的工作,可以依靠撰写程序码来达成自动化,减少重复性的工作

接下来就会来学习如何撰写Dockerfile,将会用到的程序码、指令和安装套件,一并打包成一个Container,这样也可以明确知道这个Container里面有哪些东西,也可以将这个Dockerfile,分享出去给别人修改或是建立一模一样的Container,可以避免开发环境所造成的纠纷

开始撰写Dockerfile,可以使用自己熟悉的编辑器(vscode),或vim先看完整的Dockerfile

FROM amazonlinux

RUN yum -y update && \
    yum -y install httpd php mysql php-mysql wget tar.x86_64

WORKDIR /var/www/html

RUN wget https://s3-us-west-2.amazonaws.com/us-west-2-aws-training/awsu-spl/spl-13/scripts/app.tgz

RUN tar xvfz app.tgz

RUN chown apache:root /var/www/html/rds.conf.php

CMD apachctl -D FOREGROUND

以下会叙述,Dockerfile用到的指令

Container都会需要image当底层,Dockerfile使用amazon所支援的linux,也可以替换其他image,例如:Centos、Ubuntu...。

FROM [image] => FROM amazonlinux

有了image之後,就会需要更新、安装,以及执行指令,有些指令是原本的image没有的就会需要安装

RUN [Linux Command]
RUN yum -y update && \
    yum -y install httpd php mysql php-mysql wget tar.x86_64

通常安装和更新後,就会需要选一个工作目录开始撰写程序,在Dockerfile里有一个指令是可以指定工作目录,若没有指定,预设为根目录(/)。

WORKDIR [directory]
WORKDIR /var/www/html

这边我是下载一个WEB的压缩档,之後再解压缩,以及改变档案里的权限

RUN wget https://s3-us-west-2.amazonaws.com/us-west-2-aws-training/awsu-spl/spl-13/scripts/app.tgz
RUN tar xvfz app.tgz
RUN chown apache:root /var/www/html/rds.conf.php

当你的Container正要开始运行时,若想要预设执行一些指令,显示一些资讯。最後一行我是启动web server,避免执行完就结束,指令如下

CMD [Linux Commnad]
CMD apachctl -D FOREGROUND

以上是常用的Dockerfile语法,撰写Dockerfile其实就像盖房子一层一层的叠加上去,可以选择你想要的原料材质,以及室内装潢,任由自己发挥


<<:  [第03天]理财达人Mx. Ada-查询报价

>>:  不只懂 Vue 语法:为何元件里的 data 必须是函式?建立 data 时能否使用箭头函式?

Day 07: Creational patterns - Abstract Factory

目的 假如产品之间有可以负责联系的元素,那依赖该元素找出共同点後建立关联,进而减少工厂的数量,却可以...

arduino函式库的安装与使用

大家好今天要继续介绍arduino函式库安装与使用 arduino IDE本身会有内建一些函式库让你...

Day19:19 - 结帐服务(3) - PayPal Python Checkout SDK(1)

Sveiki,我是Charlie! 在Day18我们讲到了结帐的前端,而今天我们将进入Paypal金...

Day30_终於结束了

嗨~大家,30天说长不长,说短也不短,谢谢这30天来大家的陪伴,坚持30天不间断的发文,真的是一个大...

Dungeon Mizarka 010

解决房间生成导致A★出现问题 在最先的测试用场景中,每格不是空的要不然就是障碍物或是场地外。生成的房...