Explosive Instantaneous Temper

I have a boyfriend of 7 years who is an alcoholic and addicted to marijuana. The slightest thing can set him off, from a small change in errands to a coffee machine not working at the gas bar and I am exhausted and hurt constantly from the fallout. I am the only one he treats like dirt and I am getting really depressed and belittled on a regular basis. I fell in love with the sweet, caring, funny side of him. These temper tantrums I try to accommodate and fix with alternate things that will placate him, to no avail. He refuses every thing I suggest and often swears at me and calls me names in anger and then apologizes after only for this to happen again and again. I love him but it is getting very hard to endure the onslaught of these anger bouts year in and year out. During the times he is not drinking, I don't allow him to drink because he cheated on me twice while blacked out, I worry about when he will take off on me again and drink with his coworkers who are all chronic alcoholics as are all his brothers, who are his only friends. I have tried breaking up with him multiple times and always end up missing the parts that I love so much that I break down and go get him. He has come so far after 7 years as he used to take off all the time and now only does so after a few months of sobriety. I try to not to get sucked into the anger when he does his little temper tantrums but almost always end up getting angry myself as I do not believe i deserve to be treated this way. Help!